group(function () { Route::get('/dashboard', [DashboardController::class, 'show'])->name('dashboard'); Route::view('/import-export', 'import-export') ->name('import-export') ->when(! config('investbrain.self_hosted'), function ($route) { return $route->middleware('verified'); }); Route::get('/portfolio/create', [PortfolioController::class, 'create'])->name('portfolio.create'); Route::get('/portfolio/{portfolio}', [PortfolioController::class, 'show'])->name('portfolio.show'); Route::get('/portfolio/{portfolio}/{symbol}', [HoldingController::class, 'show'])->name('holding.show'); Route::get('/transactions', [TransactionController::class, 'index'])->name('transaction.index'); }); // Invited onboarding Route::get('invite/{portfolio}/{user}', InvitedOnboardingController::class)->name('invited_onboarding')->scopeBindings(); // Overwrites Jetstream routes Route::get('/user/api-tokens', [ApiTokenController::class, 'index']) ->name('api-tokens.index') ->when(! config('investbrain.self_hosted'), function ($route) { return $route->middleware('verified'); }); Route::get('/terms', [TermsOfServiceController::class, 'show'])->name('terms.show'); Route::get('/privacy', [PrivacyPolicyController::class, 'show'])->name('policy.show'); // social login routes Route::get('auth/verify/{connected_account}', [ConnectedAccountController::class, 'verify'])->name('oauth.verify_connected_account'); Route::get('auth/{provider}', [ConnectedAccountController::class, 'redirectToProvider'])->name('oauth.redirect'); Route::get('auth/{provider}/callback', [ConnectedAccountController::class, 'handleProviderCallback'])->name('oauth.callback');