validate([ 'login' => 'required', 'password' => 'required' ]); $login = $request->login; $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; if (Auth::attempt([$field => $login, 'password' => $request->password])) { $request->session()->regenerate(); $user = Auth::user(); if ($user->role == 'admin') { return redirect('/admin/dashboard'); } if ($user->role == 'rt') { return redirect('/rt/dashboard'); } return match($user->role) { 'admin' => redirect('/admin/dashboard'), 'rt' => redirect('/rt/iuran'), default => redirect('/user/home'), }; } return back()->with('error', 'Login gagal!'); } // ================= REGISTER ================= public function register() { return view('auth.register'); } public function prosesRegister(Request $request) { // VALIDASI $request->validate([ 'name' => 'required', 'username' => 'required|unique:users,username', 'email' => 'required|email|unique:users,email', 'password' => 'required|min:6', ]); // DEBUG (WAJIB COBA) // dd($request->all()); User::create([ 'name' => $request->name, 'username' => $request->username, // 🔥 INI WAJIB ADA 'email' => $request->email, 'password' => Hash::make($request->password), 'role' => 'user' ]); return redirect('/login')->with('success', 'Register berhasil'); } // ================= LOGOUT ================= public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/login'); } public function lupaPassword() { return view('auth.lupa-password'); } use Illuminate\Support\Facades\Mail; public function kirimOtp(Request $request) { $request->validate([ 'email' => 'required|email|exists:users,email' ]); $user = User::where('email', $request->email)->first(); $otp = rand(100000, 999999); $user->update([ 'otp' => $otp, 'otp_expired_at' => now()->addMinutes(5) ]); // K }