forgetCachedPermissions(); $resources = [ 'user', 'role', 'doctor', 'patient', 'visit', 'prescription', 'medication', 'treatment', 'payment_type', 'patient_illness', 'surgery_center', 'surgery_appointment', 'osurg_initial', 'osurg_audit', ]; $actions = ['view_any', 'view', 'create', 'update', 'delete', 'delete_any', 'restore', 'restore_any', 'replicate', 'reorder', 'force_delete', 'force_delete_any']; $pages = ['page_dashboard', 'page_sync_page', 'page_sms_logs_page']; foreach ($resources as $resource) { foreach ($actions as $action) { Permission::firstOrCreate([ 'name' => "{$action}_{$resource}", 'guard_name' => 'web', ]); } } foreach ($pages as $page) { Permission::firstOrCreate([ 'name' => $page, 'guard_name' => 'web', ]); } app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions(); $superAdmin = Role::firstOrCreate(['name' => 'super_admin', 'guard_name' => 'web']); $superAdmin->syncPermissions(Permission::all()); Role::firstOrCreate(['name' => 'panel_user', 'guard_name' => 'web']); $admin = User::where('username', 'admin')->first(); if ($admin) { $admin->syncRoles(['super_admin']); $this->command->info("super_admin role assigned to user: {$admin->name}"); } else { $this->command->warn('Admin user not found!'); } $this->command->info('Roles and permissions seeded successfully.'); } }