Gdy aplikacja robi się coraz większa dla czytelności można chcieć podzielić plik routes/web.php na kilka mniejszych.
Aby to zrealizować moją pierwszą myślą było po prostu include wydzielonych plików z trasami:
// routes/web.php require_once 'web/redirects.php'; require_once 'web/website.php'; require_once 'web/admin.php';
Mimo iż to jest złe podejście to po tej zmianie aplikacja działała całkowicie poprawnie.
Problemy zaczęły się gdy wykonałem testy PHPUnit
    public function test_home()
    {
        $response = $this->get('/');
        $response->assertStatus(200);
    }
    public function test_posts()
    {
        $response = $this->get('/posts');
        $response->assertStatus(200);
    }
Pierwszy test zawsze przechodził jednak następne (bez względu czy w tym samym czy innym pliku) zwracały błąd:
Route [home] not defined.
Okazuje się, że mechanika testująca Laravela wczytuje jedynie plik routes/web.php
Aby poprawnie rozbić routes na kilka plików zamiast includów w samym pliku trzeba dostarczyć ścieżki w Provoderze.
Poprawne rozbicie routes na wiele plików
// App\Providers\RouteServiceProvider.php;
Route::middleware('web')
    ->namespace($this->namespace)
    ->group(
        [
            base_path('routes/web.php'),
            base_path('routes/web/redirects.php'),
            base_path('routes/web/website.php'),
            base_path('routes/web/admin.php'),
        ]
    );