Laravel Release Notes

Last updated: Mar 14, 2026

Laravel Products

All Laravel Release Notes (118)

  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    Laravel Framework 12.x - Add Support for `temporaryUploadUrl` to the `local` Filesystem

    Laravel enables temporary upload URLs on the local driver to unify upload flows across local, staging, and production.

    Pull request by @mnapoli

    You can now generate temporary upload URLs even when you're using the local driver, making it much easier to build consistent upload flows across local, staging, and production environments.

    use Illuminate\Support\Facades\Storage;
    $url = Storage::disk('local')->temporaryUploadUrl(
        'uploads/incoming/video.mp4',
        now()->addMinutes(10),
        ['Content-Type' => 'video/mp4']
    );
    
    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    Laravel Framework 12.x - [12.x] Add `makeMany` Method to Factory

    Laravel introduces makeMany to generate multiple in-memory model instances without persisting, ideal for tests and previews.

    Pull request by @jackbayliss

    makeMany() gives you a clean, expressive way to generate multiple in-memory model instances without persisting anything. It's ideal for tests, previews, and shaping data before a write.

    $users = User::factory()->makeMany(3);
    $payload = $users->map->only(['name', 'email']);
    
    Original source Report a problem
  • All of your release notes in one feed

    Join Releasebot and get updates from Laravel and hundreds of other software products.

  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    Laravel Framework 12.x - [12.x] Allow Closures for Values in `firstOrCreate` and `createOrFirst`

    Laravel adds lazy attribute computation on record creation to reduce queries, illustrated by firstOrCreate with Geocoder resolution.

    Pull request by @gcavanunez

    You can now lazily compute attribute values only when a record is actually being created. That means fewer unnecessary queries and less wasted work when the model already exists.

    $location = Location::firstOrCreate(
      ['address' => $address],
      fn () => ['coordinates' => Geocoder::resolve($address)],
    );
    
    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    Laravel Framework 12.x - [12.x] Support `afterSending` Method on Notification

    Laravel introduces an afterSending hook for notifications enabling audit logging and cleanup after dispatch.

    Pull request by @gdebrauwer

    afterSending() lets you hook into the lifecycle after a notification is dispatched, which is perfect for audit logging, metrics, or cleanup work without cluttering your notification channels.

    Code

    class BookingNotification extends Notification
    {
        public function __construct(
            public Booking $booking;
        ) {
            //
        }
        public function via()
        {
            return ['mail'];
        }
        public function toMail()
        {
            // ...
        }
        public function afterSending($notifiable, $channel, $response)
        {
            $this->booking->update(['notified_at' => now()]);
        }
    }
    
    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    Laravel Framework 12.x - [12.x] Exclude Decorative ASCII Art SVG from Exception Page in Non-Browser Contexts

    Laravel reduces console and non-browser noise by removing decorative ASCII SVG payload from error outputs, cleaning logs, CI, agents, and API responses.

    Release notes

    Pull request by @serhiilabs

    Console and non-browser contexts no longer receive the decorative ASCII SVG payload, keeping error output cleaner in logs, CI, agent, and API responses. Furthermore...

    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    Laravel Framework 12.x - [12.x] Use JS to Create the Laravel ASCII SVG Logo on the Fly

    Laravel updates the exception page ASCII SVG to be generated on the fly with JavaScript, making output leaner and better for various rendering contexts.

    Pull request by @markjaquith

    The exception page ASCII SVG is now generated on the fly with JavaScript, keeping output leaner and better suited to different rendering contexts.

    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    AI SDK - [12.x] Add `InteractsWithData::clamp()`

    Laravel adds clamp() on InteractsWithData to bound numeric input for pagination and user controls.

    Pull request by @cosmastech

    A clamp() method has been added to the InteractsWithData trait, giving you a tidy way to bound numeric input values, which is great for pagination, limits, sliders, and any user-controlled numbers.

    // Instead of:
    /** @var int<PHP_INT_MIN, PHP_INT_MAX> $perPage /
    $perPage = request()->integer('per_page', 50);
    // You can now do:
    /
    * @var int<1, 100> $perPage */
    $perPage = request()->clamp('per_page', 1, 100, 50);

    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    AI SDK - Make Provider Default Models Configurable

    Laravel lets users configure default text, image, audio, transcription, and embedding models in ai.php for granular control.

    Pull request by @pfrug

    The default models used for text, images, audio, transcription, and embeddings may are now configurable in your application's config/ai.php file. This gives you granular control over the exact models you'd like to use if you don't want to rely on the package defaults.

    return [
        'models' => [
            'text' => [
                'default' => 'claude-sonnet-4-6',
                'cheapest' => 'claude-haiku-4-5-20251001',
                'smartest' => 'claude-opus-4-6',
            ],
        ],
    ]
    
    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    AI SDK - Add Support for Timeouts in Transcription

    Laravel adds timeout support to Transcription enabling better control of production workloads and prevents long requests from tying up workers.

    Pull request by @NietThijmen

    Transcription now supports timeouts, giving you better control in production workloads and preventing long-running requests from tying up workers.

    $transcript = Transcription::fromPath('./podcast.mp3')->timeout(240)->generate(Lab::ElevenLabs);
    
    Original source Report a problem
  • Feb 28, 2026
    • Date parsed from source:
      Feb 28, 2026
    • First seen by Releasebot:
      Mar 14, 2026
    Laravel logo

    Laravel

    Boost - Added Support for Loading Guidelines and Skills Directly from Vendor Packages

    Laravel enables guidelines and skills to be loaded directly from vendor packages, keeping them in sync with the package version.

    Pull request by @pushpak1300

    Guidelines and skills can now be loaded directly from vendor packages, ensuring that guidelines always match the package version you are using and will never go stale.

    Original source Report a problem

Related vendors