validate([ 'email' => ['required', 'email'], 'password' => ['required'], ]); if (Auth::attempt($credentials)) { $request->session()->regenerate(); return redirect()->intended('/dashboard'); } return back()->withErrors([ 'email' => 'Email atau password salah.', ])->onlyInput('email'); } public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/login'); } public function store(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { $request->session()->regenerate(); $role = Auth::user()->tipe_pengguna; switch ($role) { case 'superadmin': case 'ketua': case 'bendahara': return redirect()->route('dashboard'); case 'sekretaris': case 'anggota': case 'user': return redirect()->route('pengurusmasjid.index'); // atau route awal yang bisa diakses user biasa default: Auth::logout(); return redirect()->route('login')->withErrors([ 'email' => 'Role tidak dikenali.', ]); } } return back()->withErrors([ 'email' => 'Login gagal, periksa email dan password.', ]); } }