forgetCachedPermissions(); foreach ($this->permissions as $name) { $permission = Permission::firstOrCreate( ['name' => $name, 'guard_name' => 'web'], ['perm_group' => 'Reporting'] ); // Assign the permission to the admin and company_manager roles foreach (['admin', 'company_manager'] as $roleName) { if ($role = Role::where('name', $roleName)->where('guard_name', 'web')->first()) { $role->givePermissionTo($permission); } } } } public function down() { app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions(); Permission::whereIn('name', $this->permissions)->get() ->each(function (Permission $permission) { Role::all()->each(fn (Role $role) => $role->revokePermissionTo($permission)); $permission->delete(); }); } }