Про гейты, верно ли понял и делаю, мы регистрируем gate ability в сервис провайдере, все права доступа из базы внес в гейты и теперь из блейд через can(), а к примерю использовать can('permission') и так и в коде и можно весить на роутеры гейты, так же есть роли которые назначаю юзеру (можно и отдельное право дать), а роли уже имеют права доступа, и в проверке гейта под капотом проверяет доступ права доступа у роли или пользователя. Все верно понял ?
в сервер провайдере регистрирую гейты
Permission::get()->map(function ($permission) {
Gate::define($permission->slug, function ($user) use ($permission) {
return $user->hasPermissionTo($permission);
});
});