authorize('cars.edit') * В AdminLTE меню: 'can' => 'cars.view' (GateFilter включён по умолчанию) */ use App\Models\Setting; use App\Models\User; use App\Services\PermissionService; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function register(): void {} public function boot(): void { // View Composer: настройки сайта в layout, шапке, подвале и страницах каталога View::composer( [ 'layouts.app', 'layouts.partials._head_meta', 'layouts.partials._header', 'layouts.partials._footer', 'pages.catalog', 'pages.car', ], function ($view) { $view->with('siteSettings', Setting::all()); } ); // Gates: регистрируем gate для каждого ключа разрешения foreach (PermissionService::keys() as $permission) { Gate::define($permission, function (User $user) use ($permission) { return $user->hasPermission($permission); }); } } }