Laravel Release Notes

Last updated: Mar 11, 2026

  • Mar 10, 2026
    • Date parsed from source:
      Mar 10, 2026
    • First seen by Releasebot:
      Mar 11, 2026
    Laravel logo

    Laravel

    v12.54.1

    Laravel 12.x delivers import consistency led by @nunomaduro.

    [12.x] Makes imports consistent by @nunomaduro in #59149

    Original source Report a problem
  • Mar 10, 2026
    • Date parsed from source:
      Mar 10, 2026
    • First seen by Releasebot:
      Mar 11, 2026
    Laravel logo

    Laravel

    v12.54.0

    Laravel releases 12.x with a wide range of fixes and improvements across the framework. Highlights include a division by zero fix in repeatEvery, queue resilience with exception handling, improved URL validation for punycode, a new PostgreSQL tsvector type, and refined docs and tests for better stability.

    12.x Release Notes

    • [12.x] Fix division by zero error in repeatEvery() method by @amirhshokri in #58987

    • [12.x] Allow app.editor.base_path to be an empty string by @kminek in #58991

    • [12.x] Add missing, remove unused parameters to docblocks by @mrvipchien in #58989

    • Fix URL validation for punycode subdomains by @mpa12 in #58982

    • [12.x] Prevent queue deadlock when reserving a job throws an exception (e.g., attempts overflow) by @sadique-cws in #58978

    • [12.x] bug: throttle with redis ignores after callback by @RobertBoes in #58990

    • Update brick/math version constraint to include 0.15 by @julien-boudry in #59005

    • Revert "Update brick/math version constraint to include 0.15" by @GrahamCampbell in #59009

    • Bump rollup from 4.46.3 to 4.59.0 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot[bot] in #59013

    • [12.x] Fix TwoColumnDetail stripping trailing punctuation from second column values by @theritvars in #59010

    • [12.x] Add support for assertions on BinaryFileResponse by @axlon in #59018

    • [12.x] fix: array offset deprecation warning by @calebdw in #59019

    • [12.x] Add tsvector column type for PostgreSQL by @milroyfraser in #59004

    • Memory Limit passed as string when run from supervisor by @turbo124 in #59049

    • [12.x] Fix facade cache file permissions by @nkoestinger in #59059

    • [12.x] Display oldest pending job in queue:monitor output by @jackbayliss in #59073

    • Fix type() method return type in Illuminate\Filesystem\Filesystem by @GNfsys in #59071

    • [12.x] Test Improvements by @crynobone in #59068

    • [12.x] Wrap flags in int-mask-of annotation by @shaedrich in #59082

    • Fix after-commit observers breaking -ing event cancellation by @eyupcanakman in #59058

    • [12.x] Fix migrate:fresh failing when database does not exist by @MElkmeshi in #59113

    • [12.x] Add interval() method to InteractsWithData by @SanderMuller in #59114

    • [12.x] Hash displayName() in cache lock keys by @A5hleyRich in #59141

    • [12.x] Improved html test helpers by @jnoordsij in #59140

    • [12.x] Add Model::withoutRelation() for selective relation unloading by @SanderMuller in #59137

    • [12.x] Include request context in HTTP client Response::dump() by @SanderMuller in #59136

    • Fix enum handling in ModelNotFoundException error message by @isaackaara in #59132

    • [12.x] Update composer.json to enforce commonmark version without DisallowedRawHtmlRenderer exploit by @Smoggert in #59131

    • [12.x] Suppress chmod errors in Filesystem::replace() for non-POSIX filesystems by @eyupcanakman in #59126

    • Add composite index to jobs table migration for improved queue polling by @firecow in #59111

    • [12.x] Load custom markdown extensions for mail by @dasundev in #59051

    • [12.x] Fix docblock for RateLimiter for() method by @amirhshokri in #59144

    • [12.x] Deduplicate paths in view:cache by @ganyicz in #59145

    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 24, 2026
    • Date parsed from source:
      Feb 24, 2026
    • First seen by Releasebot:
      Feb 25, 2026
    Laravel logo

    Laravel

    v12.53.0

    Laravel 12.x rolls out numerous improvements across JsonSchema, queues, caching, events, and database. Highlights include new JsonSchema numeric/array support, better error handling, tests, and refined scheduling and maintenance features.

    Release notes

    • [12.x] Add multipleOf support to JsonSchema numeric types by @Amirhf1 in #58903

    • [12.x] chore: don't format notifiables in NotificationSender::send by @calebdw in #58900

    • [12.x] Add vector option to whereFullText for pre-computed tsvector columns by @milroyfraser in #58893

    • [12.x] Add array key support for buildMorphMapFromModels() function by @josephkerkhof in #58891

    • [12.x] Fix RequestException summarizing for Guzzle streamed responses by @cosmastech in #58909

    • [12.x] Tests for streamed RequestException by @cosmastech in #58910

    • Support a serializable classes value on caches by @taylorotwell in #58911

    • [12.x] Simplify TokenGuard methods by @Amirhf1 in #58923

    • [12.x] Add uniqueItems support to JsonSchema ArrayType by @Amirhf1 in #58922

    • [12.x] Add tests for PhpRedisClusterConnection flushdb method by @miladev95 in #58917

    • [12.x] Add support for named arguments in event dispatching and broadcasting by @ph7jack in #58913

    • [12.x] Allow down command to refresh maintenance mode options by @alies-dev in #58918

    • [12.x] Rollback lingering PDO transaction before retrying on commit deadlock by @dxnter in #58906

    • [12.x] Simplify queue resolution using match expression by @josephkerkhof in #58928

    • Bump tar from 7.5.7 to 7.5.9 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot[bot] in #58931

    • [12.x] Fix model serialization in queue jobs by @axlon in #58939

    • [12.x] Change Mail text alignment from left to start by @zvizvi in #58935

    • [12.x] Refactor convertValuesToBoolean to use match for cleaner logic by @josephkerkhof in #58927

    • [12.x] Allow Scheduled Command Event macros to be applied to schedule groups by @stevebauman in #58926

    • [12.x] Fix race condition on creating the real-time facade cache file (#58945) by @sosias in #58947

    • [12.x] Show all mismatched values in assertSessionHasAll failure output by @dxnter in #58946

    • Fix RetryCommand not working for SQS FIFO queue by @cwang22 in #58936

    • [12.x] Improve return types for Wormhole and InteractsWithTime by @KentarouTakeda in #58951

    • [12.x] Add Cache::funnel() for concurrency limiting with any cache driver by @mathiasgrimm in #58439

    • [12.x] Ensure oldest_pending is displayed in queue:monitor by @jackbayliss in #58952

    • [12.x] Fix/cross database null safe equals by @patrickomeara in #58962

    • [12.x] Add MySQL inRandomOrder regression tests by @laraib15 in #58966

    • [12.x] Add missing @throws docblocks to Illuminate/Http by @Amirhf1 in #58965

    • Fix Invalid Types by @RyanSchaefer in #58963

    • JSONP Check by @taylorotwell in #58971

    • [12.x] Resolve Stan Mailable CI error by @jackbayliss in #58972

    • [12.x] Remove unnecessary dirname calls. by @jelleroorda in #58984

    • [12.x] Add missing @throws docblocks to Serializer and Type classes in Illuminate/JsonSchema by @mrvipchien in #58981

    Original source Report a problem
  • Feb 17, 2026
    • Date parsed from source:
      Feb 17, 2026
    • First seen by Releasebot:
      Feb 18, 2026
    Laravel logo

    Laravel

    v12.52.0

    12.x patches roll out with a wide array of fixes and refactors across docs, queues, caching, and collections, plus new features like temporaryUploadUrl support and factory helpers. It tightens PHPDocs, improves stability, and standardizes code paths for better reliability.

    • [12.x] Fix: @return in doc blocks by @alipowerful7 in #58746
    • [12.x] Ensure defer callbacks aren't discarded when using the sync queue by @jackbayliss in #58745
    • [12.x] Refactor: remove Arr::wrap() and add Collection::wrap() by @alipowerful7 in #58748
    • Add support for temporaryUploadUrl to the local filesystem by @mnapoli in #58499
    • Only merge cached casts for accessed attribute by @ug-christoph in #57627
    • [12.x] Sort stan issue on PendingRequest by @jackbayliss in #58760
    • [12.x] Update alphabetical order in facades.yml by @luisscruza in #58757
    • [12.x] allow string-based expressions for selectExpression() by @tpetry in #58753
    • Revert "[12.x] Adjust freshTimestamp for SQL Server" by @calebdw in #58758
    • [12.x] Fix return empty Collection for non-model JSON:API resources by @noir4y in #58752
    • [12.x] Refactor: remove extra space by @alipowerful7 in #58751
    • [12.x] Standardize regex delimiter in ObserverMakeCommand::parseModel by @mohammadRezaei1380 in #58777
    • [12.x] Fix incorrect @return type in VendorPublishCommand::publishTag by @mohammadRezaei1380 in #58774
    • Fix phpdoc type in promptForMissingArgumentsUsing by @billypoke in #58768
    • [12.x] cast Batch::progress() return value to int by @zjbarg in #58767
    • [12.x] Drop Collection import from AbstractRouteCollection by @jackbayliss in #58769
    • [12.x] Fix missing InputArgument::IS_ARRAY in getArguments PHPDoc by @kayw-geek in #58771
    • [12.x] Fix: @return for resolveResourceRelationshipIdentifiers() by @alipowerful7 in #58764
    • [12.x] Mailable::later() does not set delay on SendQueuedMailable instance by @amirhshokri in #58765
    • [12.x] Refactor: use enum_value() helper for environment value extraction by @alipowerful7 in #58785
    • [12.x] Add delay support assertions for queued mailables by @amirhshokri in #58787
    • Fix MySQL connection string to use --ssl-mode=DISABLED for modern clients by @AJenbo in #58786
    • [12.x] Refactor: standardize regex by @alipowerful7 in #58789
    • [12.x] Allow $preserveKeys param for LazyCollection random by @jackbayliss in #58791
    • [12.x] Refactor: new Collection() by @alipowerful7 in #58793
    • [12.x] Add makeMany method to Factory by @jackbayliss in #58795
    • [12.x] Add withoutAfterMaking() and withoutAfterCreating() factory helpers by @ziadoz in #58794
    • [12.x] Backport withMiddleware changes from 13.x by @jackbayliss in #58798
    • [12.x] Fix: add |array in doc block by @alipowerful7 in #58805
    • [12.x] Add option to opt out of parallel safe cache prefix by @jackbayliss in #58801
    • [12.x] Normalize Throwable docblocks to fully-qualified name by @amirhshokri in #58802
    • [12.x] Refactor: remove unnecessary \BackedEnum by @alipowerful7 in #58807
    • Use atomic writes when creating inline Blade component views by @cyppe in #58815
    • [12.x] Add missing tests for Request::fullUrlWithoutQuery by @miladev95 in #58814
    • Improve File::toKilobytes() DocBlock return type by @Amirhf1 in #58811
    • Use atomic writes in BladeCompiler to prevent race condition by @cyppe in #58812
    • [12.x] Refactor: add JSON decoded by @alipowerful7 in #58830
    • [12.x] Refactor: add missing @throws tag in dock block by @alipowerful7 in #58829
    • [12.x] Formatting by @amirhshokri in #58828
    • [12x]Refactor: remove unnecessary \BackedEnum in HasAttributes.php by @mohammadRezaei1380 in #58827
    • [12x] Refactor conditional message formatting using match expression by @mohammadRezaei1380 in #58825
    • [12.x] Refactor: use match expression by @alipowerful7 in #58824
    • [12.x] Simplify compileSelect method return by @amirhshokri in #58821
    • [12.x] Refactor: simplify code by @alipowerful7 in #58820
    • [12.x] Refactor: remove unnecessary \BackedEnum by @alipowerful7 in #58818
    • [12.x] Ensure HttpClientTest doesnt flake in Windows CI by @jackbayliss in #58817
    • [12.x] Refactor: JSON decoded to decoded JSON by @alipowerful7 in #58849
    • [12.x] Allow closure parameters in docblock for when() helper function by @gazben in #58862
    • [12.x] Fix typo in cache composer.json by @amirhshokri in #58875
    • [12.x] Remove unnecessary forgetDriver()from TestCaches by @jackbayliss in #58878
    • Revert "[12.x] Fixed precision checks for column types in SQL Server grammar" by @taylorotwell in #58888
    • [12.x] Display closures and standalone functions correctly in exception trace by @avosalmon in #58879
    Original source Report a problem
  • Feb 15, 2026
    • Date parsed from source:
      Feb 15, 2026
    • First seen by Releasebot:
      Feb 15, 2026
  • Feb 10, 2026
    • Date parsed from source:
      Feb 10, 2026
    • First seen by Releasebot:
      Feb 11, 2026
    Laravel logo

    Laravel

    v12.51.0

    Laravel 12.x release notes summarize numerous fixes and tweaks across typing, docs, tests, and small feature improvements. The breadth of entries and PR references indicate real shipped changes.

    12.x

    • Remove type hint in favor of return type by @WendellAdriel in #58621
    • [12.x] Adjust freshTimestamp for SQL Server by @aimeos in #58614
    • [12.x] Handle binary data in Js::encode() debug renderer by @denis-chmel in #58618
    • [12.x] Add ArrayObject props to AsEncryptedArrayObject to match AsArrayObject by @AndrewMast in #58619
    • fix: Arr::wrap() return type by @calebdw in #58625
    • [12.x] Fix typo in type definition by @shaedrich in #58624
    • [12.x] Prevent dupe locale checks in Lang::get() when locale matches fallback by @jackbayliss in #58626
    • [12.x] chore: add deprecation to Request::get() by @calebdw in #58635
    • [12.x] Fix Str::substrReplace for edge cases with negative offset or length by @jboonstra70 in #58634
    • [12.x] Refactor: improve doc blocks by @alipowerful7 in #58630
    • [12.x] Add BatchCancelled Event by @jackbayliss in #58627
    • [12.x] Fix typo in type definition by @amirhshokri in #58638
    • [12.x] Update reload tasks to include schedule:interruption by @adevade in #58637
    • docs: add missing description to FilesystemAdapter::report() docblock by @eranishojha in #58640
    • [12.x] Allow closures for values in firstOrCreate and createOrFirst by @gcavanunez in #58639
    • [12.x] Support afterSending method on notification by @gdebrauwer in #58654
    • [12.x] Allow Stringable::deduplicate() to accept array of characters by @Tresor-Kasenda in #58649
    • Update regex for trans_choice to allow negative ranges by @hmazter in #58648
    • Added timeout method to query builder for MySQL by @Vladelis in #58644
    • [12.x] Add assertJobs method on PendingBatchFake by @gdebrauwer in #58606
    • [12.x] Fix batch counts when deleteWhenMissingModels skips missing model jobs by @yankewei in #58541
    • [12.x] Fix Postgres sequence starting value for custom schemas/connections by @joteejotee in #58199
    • [12.x] Add whenFails and whenPasses methods on Validator by @gdebrauwer in #58655
    • [12.x] Bus::assertBatched() with array by @gdebrauwer in #58659
    • [12.x] Refactor: improve doc block by @alipowerful7 in #58677
    • [12.x] Add withoutHeader() method to Response by @miladev95 in #58671
    • [12.x] Add integer array key support in phpdocs by @dluague in #58668
    • Illuminate\Console\Parser typehint fix. by @LastDragon-ru in #58670
    • fix: replace substr with mb_substr for user agent encoding by @jonagoldman in #58703
    • chore: fix the Laravel ASCII SVG so that its characters perfectly align to columns by @markjaquith in #58702
    • [12.x] Allow retrieving all view data via viewData() in TestResponse by @shane-zeng in #58700
    • Exception page: fix pop in for non main frames by @martinpl in #58698
    • [12.x] Add missing @throws annotations to validation rules and JsonResponse by @QDenka in #58697
    • [12.x] Add conditional return type hint for Route::middleware() method. by @marcreichel in #58699
    • [12.x] Improved type hints for when() helper function. by @marcreichel in #58696
    • [12.x] Support Eloquent builders and relations as subqueries to update queries by @axlon in #58692
    • Add cache prefix isolation for parallel testing (#57584) by @HeathNaylor in #58691
    • Fix whereBetween to accept DatePeriod and handle missing end dates (#58092) by @HeathNaylor in #58687
    • Fix Str::isUrl() returning false for single-char domain names (#58538) by @HeathNaylor in #58686
    • Fix HTTP client response type hints for IDE compatibility (#58555) by @HeathNaylor in #58684
    • Fix types for ConfirmableTrait::confirmToProceed by @rolfvandekrol in #58681
    • [12.x] Refactor: simplify return with ?? by @alipowerful7 in #58679
    • [12.x] Refactor: replace header / headers with standardized header(s) by @alipowerful7 in #58678
    • Add SSL cert/key support to MySQL schema dump and load (#57821) by @HeathNaylor in #58690
    • Allow specifying Redis connection on Redis-based queue middleware by @markieo1 in #58656
    • [12.x] Use JS to create the Laravel ASCII SVG logo on the fly by @markjaquith in #58719
    • [12.x] Feat: add orderByPivotDesc() by @alipowerful7 in #58720
    • [12.x] Refactor: add @throws \InvalidArgumentException to doc blocks by @alipowerful7 in #58714
    • [12.x] Restore original dispatcher bindings after precognitive request by @pindab0ter in #58716
    • [12.x] Ensure throwIfStatus / throwUnlessStatus work for all status codes by @jackbayliss in #58724
    • Fix Queue::fake() not releasing unique job locks between tests (#58533) by @HeathNaylor in #58718
    • [12.x] Refactor: add _ to more readability digit by @alipowerful7 in #58738
    • [12.x] Refactor: Clean up unused $config parameters in ConcurrencyManager by @alizadeh7091 in #58739
    • [12.x] Refactor: use Dumpable by @alipowerful7 in #58743
    • [12.x] Update forever cookie factory docblock to reflect 400-day duration by @jackbayliss in #58744
    Original source Report a problem
  • Feb 4, 2026
    • Date parsed from source:
      Feb 4, 2026
    • First seen by Releasebot:
      Feb 5, 2026
    Laravel logo

    Laravel

    v12.50.0

    A sweeping 12.x update brings test improvements, queue and cache fixes, typing enhancements, new helpers, and security bumps across the framework. It tightens phpunit constraints, refactors tests, and adds typed getters and utility tweaks for better reliability.

    Release notes for 12.x

    • [12.x] Test Improvements by @crynobone in #58531
    • [12.x] Resolve the correct queue factory when using laravel octane by @BertvanHoekelen in #58530
    • [12.x] Clear parallel test view cache directories by @eduPHP in #58525
    • [12.x] fix: allow phpstan to understand default value for Request::enum by @calebdw in #58529
    • [12.x] feat: allow queued listeners to be unique by @calebdw in #58402
    • [12.x] Use morphMap when serializing model identifiers by @cosmastech in #58482
    • [12.x] Add authoritymethod to Support/Uri by @jackbayliss in #58534
    • [12.x] Use try/finally for buildStack cleanup in Container::build by @comhon-project in #58536
    • [12.x] Update phpunit version constraints to address CVE by @PerryvanderMeer in #58526
    • Bump tar from 7.5.6 to 7.5.7 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot[bot] in #58539
    • [12.x] Ensure Validator message defaults if using custom size messages by @jackbayliss in #58554
    • [12.x] Add withoutAppends to HasAttributes by @AhmedAlaa4611 in #58552
    • [12.x] Refactor: simplify in match by @alipowerful7 in #58547
    • Revert "[12.x] Update phpunit version constraints to address CVE" by @crynobone in #58542
    • [12.x] Add hasMany() method to collections by @JosephSilber in #58550
    • [12.x] Retain associative keys on eager loaded relations by @Jade-GG in #58506
    • [12.x] Add typed getters on Cache by @ahinkle in #58451
    • [12.x] Add MaintenanceMode facade to docblock generator by @axlon in #58564
    • [12.x] Adjust docblock for formatActionForCli by @jackbayliss in #58562
    • [12.x] brick/math of float deprecation by @jackbayliss in #58563
    • [12.x] Improve migration types by @shaedrich in #58561
    • [12.x] Remove extra space by @amirhshokri in #58573
    • [12.x] Drop foreach from preg_replace_callback helper by @jackbayliss in #58570
    • [12.x] Improve typing in console/command namespace by @shaedrich in #58565
    • [12.x] Refactor: improve tests by @alipowerful7 in #58582
    • [12.x] Update callback type hints for Context's Repository by @cosmastech in #58581
    • [12.x] Exclude decorative ASCII art SVG from exception page in non-browser contexts by @serhiilabs in #58580
    • [12.x] Improve types of Arr helper by @shaedrich in #58518
    • [12.x] Add tests for withoutAppends() method by @AhmedAlaa4611 in #58583
    • [12.x] Add tests for hasAppended() method by @AhmedAlaa4611 in #58587
    • [12.x] Sort flaky MaintenanceModeTest by @jackbayliss in #58590
    • [12.x] Preserve notification state mutations from via() in sendNow() by @alimorgaan in #58558
    • [12.x] Fix: add |null for $name in storeAs() by @alipowerful7 in #58613
    • [12.x] Add InteractsWithData::clamp() by @cosmastech in #58608
    • [12.x] try-catch all composer package uninstalls by @cosmastech in #58609
    • [12.x] InteractsWithData@enum() refactor by @cosmastech in #58607
    • [12.x] Enum support for Cache::get() with array keys by @jackbayliss in #58616
    • [12.x] Fixed precision checks for column types in SQL Server grammar by @aimeos in #58602
    • [12.x] Fix illuminate/reflection workflow directory by @crynobone in #58600
    • [12.x] Ensure File fail doesn't double translate in fail() by @jackbayliss in #58598
    • [12.x] Ensure mailable HTML assertions properly escape quotes by @jackbayliss in #58595
    Original source Report a problem
  • Jan 28, 2026
    • Date parsed from source:
      Jan 28, 2026
    • First seen by Releasebot:
      Jan 28, 2026
    Laravel logo

    Laravel

    v12.49.0

    Laravel 12.x delivers stability with memory fixes, multibyte safe strings, and enum aware sessions. It expands collections and resources tools, improves queue and database hint handling, and patches leaks for a smoother dev experience.

    • [12.x] Clean up compiled views after parallel testing by @dxnter in #58440
    • [12.x] Support "where subquery between columns" by @gdebrauwer in #58441
    • [12.x] Use searchable prompt for db:table command by @sakshamgorey in #58442
    • [12.x] keep single NotificationSender instance by @rodrigopedra in #58452
    • [12.x] Allow enum keys in Cache::flexible() and withoutOverlapping() by @jackbayliss in #58444
    • [12.x] Add preserveKeys method to AnonymousResourceCollection by @comhon-project in #58443
    • Bump tar from 7.5.3 to 7.5.6 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot [bot] in #58454
    • [12.x] Fix memory leak in Arr::dot() by @benjamin-commentor in #58458
    • 12.x fix: use multibyte-safe functions in Str::afterLast() by @irabbi360 in #58457
    • [12.x] Ensure Session now() and flash() accept enums by @jackbayliss in #58459
    • [12.x] Revert "feat: aliasing when selecting database expressions ( #58436 )" by @u01jmg3 in #58469
    • [12.x] Add hasSole() method to collections by @JosephSilber in #58463
    • [12.x] Skip message serialization when log level is not handled by @dxnter in #58475
    • [12.x] Add missing @param documentation to SessionGuard constructor by @jackbayliss in #58493
    • [12.x] do assignment instead of mutating to handle immutable carbon object. by @MrPunyapal in #58498
    • Enhance index hint validation for multiple indexes by @FlexIDK in #58505
    • [12.x] Make QueueFake assertPushedTimes public by @jackbayliss in #58511
    • [12.x] Ignore deadlock on DatabaseLock release by @jackbayliss in #58507
    • [12.x] Allow down command --retry option to accept datetime values by @alies-dev in #58509
    Original source Report a problem
  • January 2026
    • No date parsed from source.
    • First seen by Releasebot:
      Jan 26, 2026
  • Jan 20, 2026
    • Date parsed from source:
      Jan 20, 2026
    • First seen by Releasebot:
      Dec 3, 2025
    • Modified by Releasebot:
      Jan 27, 2026
    Laravel logo

    Laravel

    v12.48.1

    Update version to v12.48.1

    Original source Report a problem

Related products