check()) { return redirect()->route('login')->with('error', 'Please log in to access this page.'); } if (auth()->user()->is_blocked) { auth()->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect()->route('login')->with('error', 'Your account has been blocked. Please contact the administrator.'); } $user = auth()->user(); $hasRole = ($user->role === $role) || $user->hasRole($role); if (!$hasRole) { $isAdmin = ($user->role === 'admin') || $user->hasRole('admin'); if ($role === 'user' && $isAdmin) { return $next($request); } if ($isAdmin) { return redirect()->route('admin.dashboard'); } return redirect()->route('dashboard')->with('error', 'Unauthorized access.'); } return $next($request); } }