Laravel December Product Releases

Laravel December Product Releases

December closed out the year with improvements that give you more control and smoother day-to-day workflows across the Laravel ecosystem.

Laravel Cloud provides new billing alerts, while the framework adds refinements to HTTP workflows, tooling, and core language integrations. Forge and Nightwatch deliver quality-of-life improvements for deployment and debugging, and Inertia, Boost, MCP, and Echo introduce updates that reduce friction in real-world applications.

Laravel Cloud

Billing Alerts

Billing alerts are now available in Laravel Cloud. You can configure spending thresholds and receive notifications when those limits are crossed.

This helps teams stay ahead of unexpected costs and makes it easier to manage budgets as applications scale.

Learn more in the billing alerts documentation.

Read the full Laravel Cloud changelog to learn more.

Laravel Forge

Laravel Forge continues to improve deployment workflows with better support for modern frontend tooling and repository structures.

Package Manager Selection

You can now choose your preferred JavaScript package manager when creating new sites, including npm, pnpm, Bun, or Yarn.

Monorepo-Friendly Root Configuration

Forge now allows you to configure an application root directory, making it easier to deploy projects that live inside monorepos.

Read the full Laravel Forge changelog.

Laravel Nightwatch

Copy Exceptions as Markdown

Nightwatch now allows you to copy exceptions as a structured Markdown snapshot.

The copied output includes code excerpts and detailed trace data, including executed queries leading up to the error. These are formatted for direct use in AI tools and shared debugging workflows.

Read the full Nightwatch changelog for more info.

Laravel Framework 12.x

HTTP Client After-Response Callbacks

The HTTP client now supports afterResponse callbacks, making it easy to inspect headers, emit events, or transform responses after a request completes.

Fluent Promise Support for HTTP Pools

HTTP pools now support fluent chaining, allowing pooled responses to be transformed into any structure instead of returning raw responses.

1$response = Http::pool(function (Pool $pool) {
2 $pool->as('cosmatech')
3 ->get('https://cosmastech.com')
4 ->then(
5 fn ($response) => strlen($response->body())
6 );
7 $pool->as('laravel')
8 ->get('https://laravel.com')
9 ->then(
10 fn ($response) => strlen($response->body())
11 );
12});
13 
14/*
15array:2 [
16 "cosmatech" => 9095
17 "laravel" => 1422023
18]
19*/

Lazy and Proxy Object Helpers

New lazy and proxy helpers improve ergonomics around PHP lazy objects and deferred instantiation.

Reload Command for Services

A new php artisan reload command provides a consistent way to reload services like Horizon, Octane, Reverb, and Pulse after deployments.

Updated Default Email Template

The default Laravel email template has been refreshed with a cleaner, more modern design.

Wayfinder

The next version of Wayfinder entered public beta with dramatically expanded TypeScript generation across Laravel applications. Two new packages used by Wayfinder also entered public beta:

Surveyor

Surveyor provides static analysis that extracts structured metadata from PHP and Laravel codebases.

1use Laravel\Surveyor\Analyzer\Analyzer;
2 
3$analyzer = app(Analyzer::class);
4 
5// Analyze a file by path
6$result = $analyzer->analyze('/path/to/your/File.php');
7 
8// Access the analyzed scope
9$scope = $result->analyzed();
10 
11// Access the class result
12$classResult = $result->result();

Ranger

Ranger builds on Surveyor to collect and expose detailed application structure for developer tooling.

1use Laravel\Ranger\Ranger;
2use Laravel\Ranger\Components;
3use Illuminate\Support\Collection;
4 
5$ranger = app(Ranger::class);
6 
7// Register callbacks for individual items
8$ranger->onRoute(function (Components\Route $route) {
9 echo $route->uri();
10});
11 
12$ranger->onModel(function (Components\Model $model) {
13 foreach ($model->getAttributes() as $name => $type) {
14 //
15 }
16});
17 
18$ranger->onEnum(function (Components\Enum $enum) {
19 //
20});
21 
22$ranger->onBroadcastEvent(function (Components\BroadcastEvent $event) {
23 //
24});
25 
26// Or register callbacks for entire collections
27$ranger->onRoutes(function (Collection $routes) {
28 // Called once all of the routes have been discovered and processed
29});
30 
31$ranger->onModels(function (Collection $models) {
32 // Called once all of the models have been discovered and processed
33});
34 
35// Walk through the application and trigger all callbacks
36$ranger->walk();

Inertia

Flash Data Support

Inertia now supports Flash Data for one-time messages, like toasts, available via page.flash and client-side events.

Built-In Precognition Support

Laravel Precognition is now built into Inertia’s useForm hook and Form component for simple live validation.

Smaller Initial Page Payloads

Initial page data can now be loaded from a JSON script tag, reducing payload size and speeding up parsing.

Once Props

once props allow expensive or rarely changing data to be cached client-side and reused across visits.

Boost

Smarter Package Guidelines Loading

Boost now loads guidelines only for packages actively used, reducing context size and improving token efficiency.

Echo

Event Payload Type Inference

Echo can now infer event payload types directly from broadcast events when a module override file is provided.

This reduces manual typing and improves type safety when working with typed Echo clients.

1import { App } from "./types";
2 
3declare module "@laravel/echo-react" {
4 interface Events {
5 ".App.Events.UserCreated": {
6 user: App.Models.User;
7 };
8 ".App.Events.OrderShipped": {
9 order: App.Models.Order;
10 user: App.Models.User;
11 };
12 }
13}

MCP

Completion Support

MCP now supports the completion utility, enabling autocomplete suggestions for prompts and resource templates.

Resource Annotations

Resources can now declare annotations like audiencepriority, and lastModified to guide client behavior.

Structured Output Support

Structured content and output schemas improve compatibility with AI clients that require machine-readable responses.

VS Code Extension

Scope Parameters in Docblocks

Generated model docblocks now include scope parameters for clearer usage.

Generate Namespace Command

A new command generates the correct namespace for a class directly from the editor.

Read the full Laravel Framework changelog.

Keep reading