validate([ 'email' => ['required', 'string', 'email'], 'password' => ['required', 'string'], ]); if (! Auth::attempt($request->only('email', 'password'), $request->boolean('remember'))) { throw ValidationException::withMessages([//ini eror 'email' => trans('auth.failed'), ]); } $request->session()->regenerate(); $user = Auth::user(); if (! $user->is_active) { Auth::logout(); return redirect('/login')->withErrors(['email' => 'Akun belum diaktifkan oleh admin.']); } return match ($user->role) { 'admin' => redirect('/admin/dashboard'), 'guru' => redirect('/guru/dashboard'), 'siswa' => redirect('/siswa/dashboard'), default => abort(403), }; } /** * Destroy an authenticated session. */ public function destroy(Request $request): RedirectResponse { Auth::guard('web')->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/'); } }