forgetCachedPermissions(); $permissions = [ 'users.view', 'users.create', 'users.edit', 'users.delete', 'settings.manage', // Shift Management 'shifts.view', 'shifts.create', 'shifts.edit', 'shifts.delete', 'shifts.start', 'shifts.complete', 'shifts.manage_roster', 'shifts.mark_attendance', 'shifts.view_reports', 'shifts.generate_timesheets', ]; foreach ($permissions as $permission) { Permission::create(['name' => $permission]); } $adminRole = Role::create(['name' => 'admin']); $adminRole->givePermissionTo(Permission::all()); $editorRole = Role::create(['name' => 'editor']); $editorRole->givePermissionTo(['users.view', 'users.edit']); $viewerRole = Role::create(['name' => 'viewer']); $viewerRole->givePermissionTo(['users.view']); $managerRole = Role::create(['name' => 'manager']); $managerRole->givePermissionTo([ 'users.view', 'shifts.view', 'shifts.create', 'shifts.edit', 'shifts.delete', 'shifts.start', 'shifts.complete', 'shifts.manage_roster', 'shifts.mark_attendance', 'shifts.view_reports', 'shifts.generate_timesheets', ]); $admin = User::where('email', 'admin@example.com')->first(); if ($admin) { $admin->assignRole('admin'); } } }