'manage_system_settings', 'description' => 'Access and modify system settings pages' ], [ 'name' => 'use_bulk_import', 'description' => 'Use document bulk import feature' ], [ 'name' => 'use_qr_codes', 'description' => 'Generate QR codes for documents' ], [ 'name' => 'view_document_statistics', 'description' => 'Access document statistics dashboard' ], [ 'name' => 'manage_document_tags', 'description' => 'Create, edit, and delete document tags' ], [ 'name' => 'manage_document_expiration', 'description' => 'Set expiration dates and configure auto-archive rules' ], [ 'name' => 'export_documents', 'description' => 'Export document lists and reports' ], ]; foreach ($permissions as $permissionData) { Permission::firstOrCreate( ['name' => $permissionData['name']], ['guard_name' => 'web'] ); } // Assign all advanced permissions to 'admin' role $adminRole = Role::where('name', 'admin')->first(); if ($adminRole) { foreach ($permissions as $permissionData) { $permission = Permission::where('name', $permissionData['name'])->first(); if ($permission && !$adminRole->hasPermissionTo($permission)) { $adminRole->givePermissionTo($permission); } } $this->command->info('Advanced permissions assigned to admin role'); } // Optionally assign some permissions to 'staff' role $staffRole = Role::where('name', 'staff')->first(); if ($staffRole) { $staffPermissions = [ 'use_qr_codes', 'view_document_statistics', 'export_documents', ]; foreach ($staffPermissions as $permissionName) { $permission = Permission::where('name', $permissionName)->first(); if ($permission && !$staffRole->hasPermissionTo($permission)) { $staffRole->givePermissionTo($permission); } } $this->command->info('Selected permissions assigned to staff role'); } $this->command->info('Advanced permissions seeded successfully'); } }