middleware('menu-permission:global settings') * ->middleware('menu-permission:mobile settings,manage') */ class CheckMenuPermission { public function handle(Request $request, Closure $next, string $menu, string $action = 'view'): Response { if (! auth()->check()) { return $request->expectsJson() ? response()->json(['message' => 'Unauthenticated.'], 401) : redirect()->route('login'); } $allowed = $action === 'manage' ? can_manage_any_tab($menu) : can_view_any_tab($menu); if (! $allowed) { return $request->expectsJson() ? response()->json(['message' => 'This action is unauthorized.'], 403) : abort(403, "Access denied to menu: {$menu}"); } return $next($request); } }