BudgetPolicy::class, LigneBudget::class => BudgetPolicy::class, Commande::class => CommandePolicy::class, Fournisseur::class => FournisseurPolicy::class, PieceJointe::class => PieceJointePolicy::class, User::class => UserPolicy::class, ]; public function register(): void { // } public function boot(): void { $this->registerPolicies(); Vite::prefetch(concurrency: 3); // Les admins passent toutes les gates sauf les policies de user Gate::before(function (User $user, string $ability) { if ($user->hasRole('admin')) { return true; } }); // Gates pour catégories et services (pas de modèle dédié à une Policy) Gate::define('manage-categories', fn (User $user) => $user->hasAnyRole(['admin', 'responsable'])); Gate::define('manage-services', fn (User $user) => $user->hasRole('admin')); } }