Авторизацию правильно проверять через
правила авторизации
Создаем новый файл роутов routes/admin/web.php. Копируем туда все админские роуты.
Прописываем в методе boot AuthServiceProvider правило
Gate::define('view-admin', function (User $user) {
return $user->is_admin;
});
Подключаем в методе boot RouteServiceProvider админские роуты с ограничением доступа
Route::middleware(['web', 'can:view-admin'])
->namespace($this->namespace)
->group(base_path('routes/admin/web.php'));
Теперь перед каждым запросом админского роута будет выполняться проверка. Это же правило будет работать и в шаблонах, чтобы например скрыть кнопку.
@can('view-admin')
кнопка
@endcan
или в логике
if ($user->can('view-admin')) {
// code
}
что невозможно сделать без говнокода, если использовать только мидлвари, как предлагают.