Route groups let you share attributes — middleware, prefixes, namespaces — across many routes without repeating them.
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
Route::get('/settings', [SettingsController::class, 'index']);
});
Route::prefix('admin')->group(function () {
Route::get('/users', [Admin\UserController::class, 'index']); // /admin/users
Route::get('/reports', [Admin\ReportController::class, 'index']); // /admin/reports
});
Route::name('admin.')->group(function () {
Route::get('/users', [Admin\UserController::class, 'index'])->name('users'); // admin.users
Route::get('/posts', [Admin\PostController::class, 'index'])->name('posts'); // admin.posts
});
Route::middleware('auth')
->prefix('admin')
->name('admin.')
->group(function () {
Route::resource('users', Admin\UserController::class);
Route::resource('posts', Admin\PostController::class);
});