token = $token; $this->email = (string) request()->query('email', ''); } /** Consume the emailed reset token and set a new password. */ public function resetPassword() { $this->validate([ 'email' => ['required', 'email'], 'password' => ['required', 'confirmed', PasswordRule::min(6)], ]); $status = Password::reset( [ 'email' => $this->email, 'password' => $this->password, 'password_confirmation' => $this->password_confirmation, 'token' => $this->token, ], function ($user) { $user->forceFill([ 'password' => Hash::make($this->password), 'must_change_password' => false, 'remember_token' => Str::random(60), ])->save(); AuditEvent::create([ 'user_id' => $user->id, 'actor' => $user->name ?? 'system', 'action' => 'password.reset', 'target' => $user->email, 'ip' => request()->ip(), ]); event(new PasswordReset($user)); }, ); if ($status !== Password::PasswordReset) { throw ValidationException::withMessages(['email' => __('auth.reset_token_invalid')]); } session()->flash('status', __('auth.reset_done')); return $this->redirect(route('login'), navigate: true); } public function render() { return view('livewire.auth.reset-password')->title(__('auth.title_forgot')); } }