user()->hasVerifiedEmail()) { $request->fulfill(); } return $this->redirectAfterVerification($request); } protected function redirectAfterVerification(EmailVerificationRequest $request): RedirectResponse { $redirectToCheckout = $request->session()->pull('checkout.verify_redirect'); if (! $redirectToCheckout && $request->user()->pending_purchase) { $packageId = $request->session()->pull('checkout.pending_package_id'); if (! $packageId) { $packageId = optional($request->user()->tenant) ?->packages() ->latest('tenant_packages.created_at') ->value('packages.id'); } if ($packageId) { $redirectToCheckout = route('checkout.show', ['package' => $packageId]); } } $this->flashVerificationSuccess($request, (bool) $redirectToCheckout); if ($redirectToCheckout) { $request->session()->forget('checkout.pending_package_id'); $separator = str_contains($redirectToCheckout, '?') ? '&' : '?'; return redirect()->to($redirectToCheckout.$separator.'verified=1'); } $fallbackLogin = route('marketing.login'); $separator = str_contains($fallbackLogin, '?') ? '&' : '?'; return redirect()->intended($fallbackLogin.$separator.'verified=1'); } private function flashVerificationSuccess(EmailVerificationRequest $request, bool $forCheckout): void { $message = $forCheckout ? __('auth.verification.checkout_success_message') : __('auth.verification.success_message'); $request->session()->flash('verification', [ 'status' => 'success', 'title' => __('auth.verification.success_title'), 'message' => $message, ]); if (! $forCheckout) { $request->session()->flash('status', __('auth.verification.success_message')); } } }