app->runningInConsole()) { throw new RuntimeException( 'APP_KEY is not set. Set it in the environment before starting the application. ' .'Generate one with: php artisan key:generate --show' ); } // Livewire only re-applies a fixed allow-list of middleware to // /livewire/update requests. Spatie's permission middleware is not on // that list, so a component whose route is guarded by // `permission:territori.manage` would keep accepting mutating actions // from a user whose permission was revoked after page load, until they // reload. Registering them as persistent closes that window. Livewire::addPersistentMiddleware([ \Spatie\Permission\Middleware\PermissionMiddleware::class, \Spatie\Permission\Middleware\RoleMiddleware::class, \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class, ]); Gate::before(function ($user, $ability) { return $user->hasRole('amministratore') ? true : null; }); } }