otpService = $otpService; } /** ---------------- Password Reset ---------------- */ public function sendForgotPasswordOtp(CheckEmailRequest $request) { $data = OtpHelper::sendOtpByType($request->validated()['email'], 'password_reset', $this->otpService); return $this->successResponse('OTP sent successfully', $data); } public function resendResetPasswordOtp(CheckEmailRequest $request) { $data = OtpHelper::sendOtpByType($request->validated()['email'], 'password_reset', $this->otpService); return $this->successResponse('OTP resent successfully', $data); } public function resetPassword(ResetPasswordRequest $request) { $validated = $request->validated(); $user = User::where('email', $validated['email'])->firstOrFail(); $this->otpService->resetPasswordWithOtp( $user, $validated['otp'], $validated['password'] ); return $this->successResponse('Password reset successfully'); } }