@php $permissions = \Spatie\Permission\Models\Permission::all(); $knownActions = [ 'general-ledger', 'trial-balance', 'account-balances', 'balance-sheet', 'income-statement', 'daily-sales', 'credit-sales', 'fmr-amr-comparison', 'settlement', 'scheme-discount', 'shop-list', 'sku-rates', 'daily-stock-register', 'salesman-stock-register', 'inventory-ledger', 'van-stock-batch', 'van-stock-ledger', 'cash-detail', 'custom-settlement', 'creditors-ledger', 'claim-register', 'advance-tax', 'percentage-expense', 'goods-issue', 'roi', 'list', 'create', 'edit', 'delete', 'post', 'reverse', 'sync', 'view', 'manage', 'close', 'open', 'bulk-update', 'manage-mapping', 'update', 'import', 'cancel', ]; $groupedPermissions = $permissions->groupBy(function ($item) use ($knownActions) { $name = $item->name; foreach ($knownActions as $action) { if (str_ends_with($name, '-' . $action)) { return substr($name, 0, strlen($name) - strlen($action) - 1); } } return 'general'; })->sortKeys(); $groupLabels = [ 'user' => 'User Management', 'role' => 'Role Management', 'permission' => 'Permission Management', 'accounting' => 'Accounting', 'accounting-period' => 'Accounting Periods', 'chart-of-account' => 'Chart of Accounts', 'journal-entry' => 'Journal Entries', 'account-type' => 'Account Types', 'currency' => 'Currencies', 'cost-center' => 'Cost Centers', 'bank-account' => 'Bank Accounts', 'tax' => 'Tax Configuration', 'company' => 'Companies', 'supplier' => 'Suppliers', 'customer' => 'Customers', 'employee' => 'Employees', 'goods-receipt-note' => 'Goods Receipt Notes', 'goods-issue' => 'Goods Issues', 'stock-transfer' => 'Stock Transfers', 'stock-adjustment' => 'Stock Adjustments', 'warehouse' => 'Warehouses', 'warehouse-type' => 'Warehouse Types', 'product' => 'Products', 'category' => 'Categories', 'uom' => 'Units of Measure', 'sales-settlement' => 'Sales Settlements', 'supplier-payment' => 'Supplier Payments', 'vehicle' => 'Vehicles', 'promotional-campaign' => 'Promotional Campaigns', 'claim-register' => 'Claim Register', 'employee-salary' => 'Employee Salaries', 'employee-salary-transaction' => 'Salary Transactions', 'product-recall' => 'Product Recalls', 'report-financial' => 'Financial Reports', 'report-sales' => 'Sales Reports', 'report-inventory' => 'Inventory Reports', 'report-audit' => 'Audit & Operational Reports', 'setting' => 'Settings', 'inventory' => 'Inventory Navigation', ]; $rolePermissions = isset($user) ? $user->getPermissionsViaRoles()->pluck('id')->toArray() : []; $directPermissions = isset($user) ? $user->getDirectPermissions()->pluck('id')->toArray() : (isset($role) ? $role->permissions->pluck('id')->toArray() : []); @endphp