flush(); $users = User::where('phone', $phone)->get(['level']); return $users ->map(fn($user) => match ($user->level) { 'پزشک' => 'doctor', 'سرپرست' => 'supervisor', 'دانپزشک' => 'veterinarian', default => null, }) ->filter() ->unique() ->values() ->all(); } public function authenticateByPhoneAndLevel(string $phone, string $level, string $password): ?User { $user = User::where('phone', $phone) ->where('level', $level) ->first(); if (! $user) return null; if (! Hash::check($password, $user->password)) return null; Auth::login($user); session()->regenerate(); session()->forget(['register_phone', 'verified_phone', 'otp_verified', 'login_phone', 'login_level', 'available_levels']); return $user; } }