forgetCachedPermissions(); $permission = Permission::firstOrCreate( ['name' => self::PERMISSION, 'guard_name' => 'web'], ['perm_group' => self::PERMISSION_GROUP] ); if ($permission->perm_group !== self::PERMISSION_GROUP) { $permission->update(['perm_group' => self::PERMISSION_GROUP]); } // Admin (global) plus every per-company Company Admin role. Role::whereIn('name', ['admin', 'company_manager']) ->where('guard_name', 'web') ->get() ->each(fn (Role $role) => $role->givePermissionTo($permission)); } public function down() { app(PermissionRegistrar::class)->forgetCachedPermissions(); if ($permission = Permission::where('name', self::PERMISSION)->first()) { Role::whereIn('name', ['admin', 'company_manager']) ->where('guard_name', 'web') ->get() ->each(fn (Role $role) => $role->revokePermissionTo($permission)); $permission->delete(); } } };