forgetCachedPermissions(); $permissions = [ ['name' => 'dashboard.view', 'group' => 'Dashboard', 'description' => 'View dashboard'], ['name' => 'google-ads.accounts.view', 'group' => 'Google Ads Accounts', 'description' => 'View Google Ads accounts'], ['name' => 'google-ads.accounts.sync', 'group' => 'Google Ads Accounts', 'description' => 'Sync Google account records'], ['name' => 'google-ads.accounts.update', 'group' => 'Google Ads Accounts', 'description' => 'Update Google Ads account assignment details'], ['name' => 'google-ads.activities.create', 'group' => 'Google Ads Activities', 'description' => 'Create account activities'], ['name' => 'google-ads.activities.update', 'group' => 'Google Ads Activities', 'description' => 'Update account activities'], ['name' => 'google-ads.activities.complete', 'group' => 'Google Ads Activities', 'description' => 'Mark account activities as complete'], ['name' => 'google-ads.activities.delete', 'group' => 'Google Ads Activities', 'description' => 'Delete account activities'], ['name' => 'google-ads.import', 'group' => 'Google Ads Accounts', 'description' => 'Import Google Ads data'], ['name' => 'google.reports.view', 'group' => 'Google Reports', 'description' => 'View Google campaign reports'], ['name' => 'client-invoices.create', 'group' => 'Client Invoices', 'description' => 'Create client invoices'], ['name' => 'client-invoices.create-client', 'group' => 'Client Invoices', 'description' => 'Create clients from pending invoices'], ['name' => 'client-invoices.update', 'group' => 'Client Invoices', 'description' => 'Update client invoices'], ['name' => 'client-invoices.approve', 'group' => 'Client Invoices', 'description' => 'Approve client invoices'], ['name' => 'client-invoices.delete', 'group' => 'Client Invoices', 'description' => 'Delete client invoices'], ['name' => 'client-invoices.view-pdf', 'group' => 'Client Invoices', 'description' => 'View invoice PDF'], ['name' => 'clients.adjustments.create', 'group' => 'Client Adjustments', 'description' => 'Create client invoice adjustments'], ['name' => 'clients.adjustments.delete', 'group' => 'Client Adjustments', 'description' => 'Delete client invoice adjustments'], ['name' => 'management.roles.view', 'group' => 'Role Management', 'description' => 'View roles'], ['name' => 'management.roles.update', 'group' => 'Role Management', 'description' => 'Update role permissions'], ['name' => 'management.users.view', 'group' => 'User Management', 'description' => 'View users'], ['name' => 'management.users.create', 'group' => 'User Management', 'description' => 'Create users'], ['name' => 'management.users.update', 'group' => 'User Management', 'description' => 'Update users'], ]; foreach ($permissions as $permission) { Permission::query()->updateOrCreate( ['name' => $permission['name'], 'guard_name' => 'web'], [ 'group' => $permission['group'], 'group_name' => $permission['group'], 'description' => $permission['description'], ], ); } $adminRole = Role::query()->firstOrCreate(['name' => 'Admin', 'guard_name' => 'web']); Role::query()->firstOrCreate(['name' => 'Sales', 'guard_name' => 'web']); Role::query()->firstOrCreate(['name' => 'Social Media Specialist', 'guard_name' => 'web']); $adminRole->syncPermissions(Permission::query()->pluck('name')->all()); app(PermissionRegistrar::class)->forgetCachedPermissions(); } }