Laravel 11, and the Kernel classes that are gone

The March release removes the HTTP and console kernels from the skeleton, which is a structural change rather than a rename.

// bootstrap/app.php, and this is now the whole thing
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__ . '/../routes/web.php',
        api: __DIR__ . '/../routes/api.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->api(prepend: [EnsureApiVersion::class]);
        $middleware->alias(['subscribed' => EnsureSubscribed::class]);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        $exceptions->dontReport(SupplierUnavailable::class);
    })
    ->create();

The upgrade does not require this — an existing application keeps its kernels and works — so adopting it is a choice about matching the skeleton everybody else will have. The part that took longest was the middleware order, which had been implicit in an array and is now expressed through prepend, append and replace; a test asserting the resolved order was the only way to be sure it had not changed.