view('app'))->middleware(['auth', 'verified'])->name('dashboard'); // Server-side logout — handles hard navigation to /logout Route::get('/logout', function (Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/'); })->middleware('auth')->name('logout'); Route::middleware(['auth'])->prefix('billing')->name('billing.')->group(function () { Route::get('/checkout/{tier}/{cadence}', [BillingController::class, 'checkout'])->name('checkout'); Route::get('/portal', [BillingController::class, 'portal'])->name('portal'); Route::get('/success', [BillingController::class, 'success'])->name('success'); Route::get('/cancel', [BillingController::class, 'cancel'])->name('cancel'); }); // SPA catch-all — must be last Route::get('/{any?}', fn () => view('app'))->where('any', '.*')->name('home');