view('welcome'))->name('home'); // Guest auth pages — full-page class-based Livewire components (R1/R2). Fortify // handles the POST actions (login.store, two-factor.login.store) with views off. Route::middleware('guest')->group(function () { Route::get('/login', Login::class)->name('login'); Route::get('/two-factor-challenge', TwoFactorChallenge::class)->name('two-factor.login'); }); // Customer portal — each sidebar tab is a full-page class-based Livewire // component (R1/R2); paths are English (R13). Route::middleware('auth')->group(function () { Route::get('/dashboard', Dashboard::class)->name('dashboard'); Route::get('/cloud', Cloud::class)->name('cloud'); Route::get('/users', Users::class)->name('users'); Route::get('/backups', Backups::class)->name('backups'); Route::get('/invoices', Invoices::class)->name('invoices'); Route::get('/support', Support::class)->name('support'); }); // Admin / operator console — dark theme, gated to is_admin users (R1/R2, R13). Route::middleware(['auth', 'admin'])->prefix('admin')->name('admin.')->group(function () { Route::get('/', Admin\Overview::class)->name('overview'); Route::get('/customers', Admin\Customers::class)->name('customers'); Route::get('/instances', Admin\Instances::class)->name('instances'); Route::get('/hosts', Admin\Hosts::class)->name('hosts'); Route::get('/provisioning', Admin\Provisioning::class)->name('provisioning'); Route::get('/revenue', Admin\Revenue::class)->name('revenue'); });