This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [laravel/framework](https://laravel.com) ([source](https://github.com/laravel/framework)) | `^12.0` → `^13.0` |  |  |
---
### Release Notes
<details>
<summary>laravel/framework (laravel/framework)</summary>
### [`v13.4.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1340---2026-04-07)
[Compare Source](https://github.com/laravel/framework/compare/v13.3.0...v13.4.0)
- \[13.x] Fix missing `Illuminate\Queue\Attributes\Delay` attribute by [@​fadez](https://github.com/fadez) in [#​59504](https://github.com/laravel/framework/pull/59504)
- \[13.x] Fix `$request->interval()` failing with very small float values by [@​SanderMuller](https://github.com/SanderMuller) in [#​59502](https://github.com/laravel/framework/pull/59502)
- \[13.x] Add pint.json to export-ignore by [@​axlon](https://github.com/axlon) in [#​59497](https://github.com/laravel/framework/pull/59497)
- \[13.x] Add --ignore-scripts to yarn in BroadcastingInstallCommand by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59494](https://github.com/laravel/framework/pull/59494)
- \[13.x] Fix static closure binding in remaining manager classes by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59493](https://github.com/laravel/framework/pull/59493)
- \[13.x] Fix CollectedBy attribute not resolving through abstract parent classes by [@​jackbayliss](https://github.com/jackbayliss) in [#​59488](https://github.com/laravel/framework/pull/59488)
- \[13.x] Fix: Allow runtime property overrides (onQueue) to take precedence over class attributes by [@​niduranga](https://github.com/niduranga) in [#​59468](https://github.com/laravel/framework/pull/59468)
- \[13.x] Use #\[Delay] attribute in Bus Dispatcher by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59514](https://github.com/laravel/framework/pull/59514)
- \[13.x] Use #\[Delay] attribute in NotificationSender by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59513](https://github.com/laravel/framework/pull/59513)
- \[13.x] Add `overflow` option to Carbon plus and minus by [@​lucasmichot](https://github.com/lucasmichot) in [#​59509](https://github.com/laravel/framework/pull/59509)
- \[13.x] Fix: respect null redirect in unauthenticated exception handler by [@​timmylindh](https://github.com/timmylindh) in [#​59505](https://github.com/laravel/framework/pull/59505)
- \[13.x] Fix TypeError in starts\_with/ends\_with validation rules on non-string values by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59541](https://github.com/laravel/framework/pull/59541)
- \[13.x] allow null to be passed directly to redirectGuestsTo() by [@​timmylindh](https://github.com/timmylindh) in [#​59526](https://github.com/laravel/framework/pull/59526)
- Revert "\[13.x] Remove unnecessary clone in SessionManager to prevent duplicate Redis connections" by [@​taylorotwell](https://github.com/taylorotwell) in [#​59542](https://github.com/laravel/framework/pull/59542)
- \[13.x] Fix deprecation warning in Contains and DoesntContain rules when values contain null by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59561](https://github.com/laravel/framework/pull/59561)
- \[13.x] Fix Str::markdown() and Str::inlineMarkdown() crash on null input by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59554](https://github.com/laravel/framework/pull/59554)
- \[13.x] Add queue methods to inspect jobs by [@​jackbayliss](https://github.com/jackbayliss) in [#​59511](https://github.com/laravel/framework/pull/59511)
- Feature/form request strict mode by [@​NurullahDemirel](https://github.com/NurullahDemirel) in [#​59430](https://github.com/laravel/framework/pull/59430)
- Bump vite from 7.3.1 to 7.3.2 in /src/Illuminate/Foundation/resources/exceptions/renderer by [@​dependabot](https://github.com/dependabot)\[bot] in [#​59571](https://github.com/laravel/framework/pull/59571)
- \[13.x] Fix deprecation warning in In and NotIn rules when values contain null by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59576](https://github.com/laravel/framework/pull/59576)
- \[13.x] Add flushState to FormRequest to reset global strict mode between tests by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59574](https://github.com/laravel/framework/pull/59574)
- \[13.x] Fix `#[WithoutRelations]` queue attribute not being inherited by child classes by [@​stevebauman](https://github.com/stevebauman) in [#​59568](https://github.com/laravel/framework/pull/59568)
### [`v13.3.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1330---2026-04-01)
[Compare Source](https://github.com/laravel/framework/compare/v13.2.0...v13.3.0)
- \[13.x] Forward releaseOnTerminationSignals through schedule groups by [@​jackbayliss](https://github.com/jackbayliss) in [#​59357](https://github.com/laravel/framework/pull/59357)
- \[13.x] Fix sub-minute scheduling skips at minute boundaries by [@​JoshSalway](https://github.com/JoshSalway) in [#​59331](https://github.com/laravel/framework/pull/59331)
- \[13.x] Display memory usage in verbose queue worker output by [@​jackbayliss](https://github.com/jackbayliss) in [#​59379](https://github.com/laravel/framework/pull/59379)
- \[13.x] Update WithoutOverlapping\@​shared() for clarity by [@​cosmastech](https://github.com/cosmastech) in [#​59375](https://github.com/laravel/framework/pull/59375)
- \[13.x] Fix dependency injection of faked queueing dispatcher by [@​axlon](https://github.com/axlon) in [#​59378](https://github.com/laravel/framework/pull/59378)
- \[13.x] Fix incrementEach/decrementEach to scope to model instance by [@​JoshSalway](https://github.com/JoshSalway) in [#​59376](https://github.com/laravel/framework/pull/59376)
- \[13.x] Add array value types to Support module docblocks by [@​Anthony14FR](https://github.com/Anthony14FR) in [#​59383](https://github.com/laravel/framework/pull/59383)
- \[13.x] Add lost connection to WorkerStopReason by [@​jackbayliss](https://github.com/jackbayliss) in [#​59370](https://github.com/laravel/framework/pull/59370)
- \[13.x] MariaDbSchemaState uses mysql --version for client detection instead of mariadb --version by [@​kylemilloy](https://github.com/kylemilloy) in [#​59360](https://github.com/laravel/framework/pull/59360)
- \[13.x] Add enum support to QueueManager connection methods by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59389](https://github.com/laravel/framework/pull/59389)
- \[13.x] Setup rector by [@​lucasmichot](https://github.com/lucasmichot) in [#​59385](https://github.com/laravel/framework/pull/59385)
- \[13.x] Improve `Arr::whereNotNull()` docs by [@​axlon](https://github.com/axlon) in [#​59411](https://github.com/laravel/framework/pull/59411)
- \[13.x] Pass request to afterResponse callback by [@​bilfeldt](https://github.com/bilfeldt) in [#​59410](https://github.com/laravel/framework/pull/59410)
- \[13.x] Add isNotEmpty() method to Uri class by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59408](https://github.com/laravel/framework/pull/59408)
- \[13.x] Add missing capitalize parameter to Stringable::initials() by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59407](https://github.com/laravel/framework/pull/59407)
- \[13.x] Fix trait initializer collision with Attribute parsing by [@​sadique-cws](https://github.com/sadique-cws) in [#​59404](https://github.com/laravel/framework/pull/59404)
- \[13.x] Add session to supported drivers comment by [@​jackbayliss](https://github.com/jackbayliss) in [#​59399](https://github.com/laravel/framework/pull/59399)
- \[13.x] Add `->file()` method to `$request->safe()` by [@​SanderMuller](https://github.com/SanderMuller) in [#​59396](https://github.com/laravel/framework/pull/59396)
- \[13.x] Add enum support to LogManager channel and driver methods by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59391](https://github.com/laravel/framework/pull/59391)
- \[13.x] Fix MorphTo eager load matching when ownerKey is null and result key is a non-primitive by [@​wietsewarendorff](https://github.com/wietsewarendorff) in [#​59394](https://github.com/laravel/framework/pull/59394)
- \[13.x] Remove unnecessary clone in SessionManager to prevent duplicate Redis connections by [@​JoshSalway](https://github.com/JoshSalway) in [#​59323](https://github.com/laravel/framework/pull/59323)
- \[13.x] Use FQCN for Str in exception renderer blade templates by [@​bankorh](https://github.com/bankorh) in [#​59412](https://github.com/laravel/framework/pull/59412)
- Allow variadic args for model attributes by [@​jasonmccreary](https://github.com/jasonmccreary) in [#​59421](https://github.com/laravel/framework/pull/59421)
- \[13.x] CollectedBy Attribute should follow inheritence by [@​jackbayliss](https://github.com/jackbayliss) in [#​59419](https://github.com/laravel/framework/pull/59419)
- \[13.x] Fix deprecation notice in JSON:API resources by [@​alihamze](https://github.com/alihamze) in [#​59418](https://github.com/laravel/framework/pull/59418)
- \[13.x] Add withoutFragment() method to Uri class by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59413](https://github.com/laravel/framework/pull/59413)
- \[13.x] Fix macros with static closures by [@​FeBe95](https://github.com/FeBe95) in [#​59414](https://github.com/laravel/framework/pull/59414)
- \[13.x] Fix sum() docblock to include key parameter in callback signature by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59444](https://github.com/laravel/framework/pull/59444)
- \[13.x] Add assertHasNoAttachments() method to Mailable by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59443](https://github.com/laravel/framework/pull/59443)
- \[13.x] Add a driver method to the MailFake class by [@​kevinb1989](https://github.com/kevinb1989) in [#​59448](https://github.com/laravel/framework/pull/59448)
- \[13.x] Cache getLockForPopping() result in DatabaseQueue by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59435](https://github.com/laravel/framework/pull/59435)
- \[13.x] prefer `new Collection()` over `collect()` helper by [@​browner12](https://github.com/browner12) in [#​59453](https://github.com/laravel/framework/pull/59453)
- \[13.x] remove unnecessary `array_flip()` calls by [@​browner12](https://github.com/browner12) in [#​59452](https://github.com/laravel/framework/pull/59452)
- Make Collection methods compatible with extended subclass constructors by [@​ProjektGopher](https://github.com/ProjektGopher) in [#​59455](https://github.com/laravel/framework/pull/59455)
- \[13.x] `UnitTest` test attribute by [@​cosmastech](https://github.com/cosmastech) in [#​59432](https://github.com/laravel/framework/pull/59432)
- \[13.x] prefer `isset()` over `in_array()` for better performance by [@​browner12](https://github.com/browner12) in [#​59457](https://github.com/laravel/framework/pull/59457)
- \[13.x] remove temporary variable by [@​browner12](https://github.com/browner12) in [#​59456](https://github.com/laravel/framework/pull/59456)
- \[13.x] Add BatchStarted event by [@​jackbayliss](https://github.com/jackbayliss) in [#​59458](https://github.com/laravel/framework/pull/59458)
- \[13.x] Preserve URI fragment when decoding query string by [@​Nipun404](https://github.com/Nipun404) in [#​59481](https://github.com/laravel/framework/pull/59481)
- fix: allow returning Stringable objects in casts()-method by [@​Bloemendaal](https://github.com/Bloemendaal) in [#​59479](https://github.com/laravel/framework/pull/59479)
- \[13.x] Fix manager breaking when called with static closure by [@​axlon](https://github.com/axlon) in [#​59470](https://github.com/laravel/framework/pull/59470)
- Prevents installed package from executing malicious code via `postinstall` in `install:broadcasting` command by [@​duncanmcclean](https://github.com/duncanmcclean) in [#​59485](https://github.com/laravel/framework/pull/59485)
### [`v13.2.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1320---2026-03-24)
[Compare Source](https://github.com/laravel/framework/compare/v13.1.1...v13.2.0)
- feat(queue): support enums in `#[Queue]` and `#[Connection]` by [@​innocenzi](https://github.com/innocenzi) in [#​59278](https://github.com/laravel/framework/pull/59278)
- Improve raw SQL binding substitution performance by [@​gufoe](https://github.com/gufoe) in [#​59277](https://github.com/laravel/framework/pull/59277)
- \[13.x] fix: add missing negate for SeeInHtml assertion by [@​jesperbeisner](https://github.com/jesperbeisner) in [#​59303](https://github.com/laravel/framework/pull/59303)
- \[13.x] Allow for passing enums to attributes by [@​riesjart](https://github.com/riesjart) in [#​59297](https://github.com/laravel/framework/pull/59297)
- \[13.x] Add releaseOnSignal param to withoutOverlapping by [@​jackbayliss](https://github.com/jackbayliss) in [#​59298](https://github.com/laravel/framework/pull/59298)
- Add symmetrical, expressive attributes by [@​jasonmccreary](https://github.com/jasonmccreary) in [#​59284](https://github.com/laravel/framework/pull/59284)
- \[13.x] Fix LazyPromise::wait() signature compatibility with Guzzle's PromiseInterface by [@​shavonn](https://github.com/shavonn) in [#​59301](https://github.com/laravel/framework/pull/59301)
- \[13.x] `schedule:list` display expression in the correct timezone by [@​xiCO2k](https://github.com/xiCO2k) in [#​59286](https://github.com/laravel/framework/pull/59286)
- Handle exceptions in eventStream to prevent fatal error by [@​WendellAdriel](https://github.com/WendellAdriel) in [#​59292](https://github.com/laravel/framework/pull/59292)
- \[13.x] Ensure connectUsing works with UnitEnum / FileManager drive docblock by [@​jackbayliss](https://github.com/jackbayliss) in [#​59306](https://github.com/laravel/framework/pull/59306)
- \[13.x] Include columns and index in UniqueConstraintViolationException by [@​cosmastech](https://github.com/cosmastech) in [#​59299](https://github.com/laravel/framework/pull/59299)
- \[13.x] Add TimedOut worker stop reason by [@​jackbayliss](https://github.com/jackbayliss) in [#​59310](https://github.com/laravel/framework/pull/59310)
- Fix Table attribute incrementing not working for Pivot models by [@​sadique-cws](https://github.com/sadique-cws) in [#​59336](https://github.com/laravel/framework/pull/59336)
- \[13.x] Ensure ScopedBy Attribute works with inheritance by [@​jackbayliss](https://github.com/jackbayliss) in [#​59332](https://github.com/laravel/framework/pull/59332)
- Modify sum callback to include item key by [@​mathieutu](https://github.com/mathieutu) in [#​59322](https://github.com/laravel/framework/pull/59322)
- \[13.x] Bound error page query listener to prevent memory bloat in Octane by [@​JoshSalway](https://github.com/JoshSalway) in [#​59309](https://github.com/laravel/framework/pull/59309)
- \[13.x] Allow opting out of worker Job exception reporting by [@​jackbayliss](https://github.com/jackbayliss) in [#​59308](https://github.com/laravel/framework/pull/59308)
- \[13.x] Adds mobile safe-area-inset support to exception renderer by [@​dr-codswallop](https://github.com/dr-codswallop) in [#​59341](https://github.com/laravel/framework/pull/59341)
- \[13.x] Allow passing multiple arrays to has factory method by [@​jackbayliss](https://github.com/jackbayliss) in [#​59343](https://github.com/laravel/framework/pull/59343)
- \[13.x] Allow Backoff Attribute to be variadic by [@​jackbayliss](https://github.com/jackbayliss) in [#​59354](https://github.com/laravel/framework/pull/59354)
### [`v13.1.1`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1311---2026-03-18)
[Compare Source](https://github.com/laravel/framework/compare/v13.1.0...v13.1.1)
- Break queue dependency by [@​taylorotwell](https://github.com/taylorotwell) in [#​59275](https://github.com/laravel/framework/pull/59275)
### [`v13.1.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1310---2026-03-18)
[Compare Source](https://github.com/laravel/framework/compare/v13.0.0...v13.1.0)
- \[12.x] Correct truncate exceptions at by [@​bretto36](https://github.com/bretto36) in [#​59239](https://github.com/laravel/framework/pull/59239)
- \[13.x] Remove useless \Mockery::close() by [@​lucasmichot](https://github.com/lucasmichot) in [#​59253](https://github.com/laravel/framework/pull/59253)
- Fix: Batch::add() wipes queue assignment on first job in array chains by [@​ProjektGopher](https://github.com/ProjektGopher) in [#​59233](https://github.com/laravel/framework/pull/59233)
- Improvements for asserting HTML in text by [@​jasonmccreary](https://github.com/jasonmccreary) in [#​59161](https://github.com/laravel/framework/pull/59161)
- \[13.x] Use Carbon::now() instead of now() helper by [@​lucasmichot](https://github.com/lucasmichot) in [#​59252](https://github.com/laravel/framework/pull/59252)
- \[13.x] Fix null broadcaster deprecation warning in PHP 8.5 by [@​mortenscheel](https://github.com/mortenscheel) in [#​59269](https://github.com/laravel/framework/pull/59269)
- \[12.x] Fix float pluralization in trans\_choice() by [@​JulianGlueck](https://github.com/JulianGlueck) in [#​59268](https://github.com/laravel/framework/pull/59268)
- \[12.x] Fix tests on PHP 8.5 by [@​SanderMuller](https://github.com/SanderMuller) in [#​59251](https://github.com/laravel/framework/pull/59251)
- \[13.x] Add toString to Uri by [@​dwightwatson](https://github.com/dwightwatson) in [#​59259](https://github.com/laravel/framework/pull/59259)
### [`v13.0.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1300---2026-03-17)
[Compare Source](https://github.com/laravel/framework/compare/v12.56.0...v13.0.0)
- Revert "\[12.x] Query builder PDO fetch modes" by [@​taylorotwell](https://github.com/taylorotwell) in [#​54709](https://github.com/laravel/framework/pull/54709)
- \[13.x] Prepare branch alias for Laravel 13 by [@​crynobone](https://github.com/crynobone) in [#​54701](https://github.com/laravel/framework/pull/54701)
- \[12.x] Query builder PDO fetch modes + columns fix by [@​bert-w](https://github.com/bert-w) in [#​54734](https://github.com/laravel/framework/pull/54734)
- \[13.x] Fix Tests/CI environments by [@​crynobone](https://github.com/crynobone) in [#​54760](https://github.com/laravel/framework/pull/54760)
- \[13.x] Requires PHP 8.3 as minimum version by [@​crynobone](https://github.com/crynobone) in [#​54763](https://github.com/laravel/framework/pull/54763)
- \[13.x] Add missing parameters to `Response` methods `throw()` and `throwIf()` by [@​cosmastech](https://github.com/cosmastech) in [#​54798](https://github.com/laravel/framework/pull/54798)
- \[13.x] Fix scope removal in nested where conditions by [@​willrowe](https://github.com/willrowe) in [#​54816](https://github.com/laravel/framework/pull/54816)
- \[13.x] Remove function existence checks by [@​xurshudyan](https://github.com/xurshudyan) in [#​54876](https://github.com/laravel/framework/pull/54876)
- \[13.x] Removed unneeded default argument by [@​AndrewMast](https://github.com/AndrewMast) in [#​54900](https://github.com/laravel/framework/pull/54900)
- \[13.x] Fix unresolved merge conflict in Concurrency composer.json by [@​jnoordsij](https://github.com/jnoordsij) in [#​55233](https://github.com/laravel/framework/pull/55233)
- \[13.x] Fixes merge conflict by [@​crynobone](https://github.com/crynobone) in [#​55294](https://github.com/laravel/framework/pull/55294)
- \[13.x] Error exit code for clear command by [@​mbardelmeijer](https://github.com/mbardelmeijer) in [#​55355](https://github.com/laravel/framework/pull/55355)
- \[13.x] Add #\[\Override] to the BatchFake class methods by [@​imanghafoori1](https://github.com/imanghafoori1) in [#​55358](https://github.com/laravel/framework/pull/55358)
- \[13.x] PDO Fetch modes by [@​bert-w](https://github.com/bert-w) in [#​55394](https://github.com/laravel/framework/pull/55394)
- Allow Listeners to dynamically specify deleteWhenMissingModels by [@​L3o-pold](https://github.com/L3o-pold) in [#​55508](https://github.com/laravel/framework/pull/55508)
- \[13.x] Do not allow new model instances to be created during boot by [@​willrowe](https://github.com/willrowe) in [#​55685](https://github.com/laravel/framework/pull/55685)
- Fix typo in `Blueprint`: `datetime` => `dateTime` by [@​TheJoeSchr](https://github.com/TheJoeSchr) in [#​55859](https://github.com/laravel/framework/pull/55859)
- Feature: add support straight join in mysql by [@​jferdi24](https://github.com/jferdi24) in [#​55786](https://github.com/laravel/framework/pull/55786)
- \[13.x] Register subdomain routes before routes that are not linked to a domain by [@​gdebrauwer](https://github.com/gdebrauwer) in [#​55921](https://github.com/laravel/framework/pull/55921)
- \[13.x] Supports Symfony 7.4 & 8.0 by [@​crynobone](https://github.com/crynobone) in [#​56029](https://github.com/laravel/framework/pull/56029)
- \[13.x] Change to hyphenate prefixes by [@​u01jmg3](https://github.com/u01jmg3) in [#​56172](https://github.com/laravel/framework/pull/56172)
- \[13.x] Use exception object in JobAttempted event by [@​bert-w](https://github.com/bert-w) in [#​56148](https://github.com/laravel/framework/pull/56148)
- \[13.x] remove superfluous element by [@​browner12](https://github.com/browner12) in [#​56303](https://github.com/laravel/framework/pull/56303)
- Add eventStream signature to ResponseFactory contract by [@​csfh](https://github.com/csfh) in [#​56306](https://github.com/laravel/framework/pull/56306)
- fix: align ResponseFactory::eventStream signature with interface by [@​KIKOmanasijev](https://github.com/KIKOmanasijev) in [#​56484](https://github.com/laravel/framework/pull/56484)
- \[13.x] `Cache::touch()` & `Store::touch()` for TTL Extension by [@​yitzwillroth](https://github.com/yitzwillroth) in [#​55954](https://github.com/laravel/framework/pull/55954)
- \[13.x] Make QueueBusy event consistent with other queue events by [@​AhmedAlaa4611](https://github.com/AhmedAlaa4611) in [#​56673](https://github.com/laravel/framework/pull/56673)
- \[13.x] use clearer pagination view names by [@​browner12](https://github.com/browner12) in [#​56307](https://github.com/laravel/framework/pull/56307)
- \[13.x] Update `countBy` docblock in `Enumerable` interface to allow for enum callback by [@​jnoordsij](https://github.com/jnoordsij) in [#​56897](https://github.com/laravel/framework/pull/56897)
- \[13.x] Generate plural morph pivot table name by [@​willrowe](https://github.com/willrowe) in [#​56832](https://github.com/laravel/framework/pull/56832)
- \[13.x] Resolve Symfony Console `add()` method deprecation by [@​KIKOmanasijev](https://github.com/KIKOmanasijev) in [#​56488](https://github.com/laravel/framework/pull/56488)
- \[13.x] Add command method to contract by [@​rodrigopedra](https://github.com/rodrigopedra) in [#​56978](https://github.com/laravel/framework/pull/56978)
- Refactor: replace strpos check with str\_contains for clarity by [@​arshidkv12](https://github.com/arshidkv12) in [#​57042](https://github.com/laravel/framework/pull/57042)
- Remove unnecessary parameters by [@​arshidkv12](https://github.com/arshidkv12) in [#​57047](https://github.com/laravel/framework/pull/57047)
- \[README.md] change laravel bootcamp to laravel learn by [@​MoZayedSaeid](https://github.com/MoZayedSaeid) in [#​57176](https://github.com/laravel/framework/pull/57176)
- \[13.x] Resolve issues with tests by [@​jackbayliss](https://github.com/jackbayliss) in [#​57258](https://github.com/laravel/framework/pull/57258)
- \[13.x] Bind manager instances to custom driver closures by [@​daniser](https://github.com/daniser) in [#​57173](https://github.com/laravel/framework/pull/57173)
- \[13.x] Compile full DELETE with JOIN including ORDER BY and LIMIT in MySQL grammar by [@​tegos](https://github.com/tegos) in [#​57196](https://github.com/laravel/framework/pull/57196)
- \[13.x] Flush `Str` factories when tearing down test case by [@​cosmastech](https://github.com/cosmastech) in [#​57296](https://github.com/laravel/framework/pull/57296)
- \[13.x] Update reset password notification subject by [@​ganyicz](https://github.com/ganyicz) in [#​57882](https://github.com/laravel/framework/pull/57882)
- \[13.x] Update verification email subject capitalization by [@​ganyicz](https://github.com/ganyicz) in [#​57884](https://github.com/laravel/framework/pull/57884)
- \[13.x] Simplify preg\_replace\_array callback by removing unnecessary foreach loop by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​57924](https://github.com/laravel/framework/pull/57924)
- \[13.x] Fix changes from Laravel 12 by [@​crynobone](https://github.com/crynobone) in [#​57919](https://github.com/laravel/framework/pull/57919)
- \[13.x] Default `PendingRequest@pool()` to use 2 for concurrency by [@​cosmastech](https://github.com/cosmastech) in [#​57972](https://github.com/laravel/framework/pull/57972)
- \[13.x] Copy `Symfony\Component\HttpFoundation\Request::get()` functionality to avoid breaking changes. by [@​crynobone](https://github.com/crynobone) in [#​58081](https://github.com/laravel/framework/pull/58081)
- \[13.x] Defer registering schedule registered using `ApplicationBuilder::withScheduling()` by [@​crynobone](https://github.com/crynobone) in [#​58160](https://github.com/laravel/framework/pull/58160)
- \[13.x] Return data object from `ModelInspector` to make `show:model` more flexible by [@​cosmastech](https://github.com/cosmastech) in [#​58230](https://github.com/laravel/framework/pull/58230)
- \[13.x] Add ability to default queue by class type by [@​jackbayliss](https://github.com/jackbayliss) in [#​58094](https://github.com/laravel/framework/pull/58094)
- \[13.x] Add reason to WorkerStopping event by [@​jackbayliss](https://github.com/jackbayliss) in [#​58341](https://github.com/laravel/framework/pull/58341)
- \[13.x] Add starting to Monitor Contract by [@​jackbayliss](https://github.com/jackbayliss) in [#​58399](https://github.com/laravel/framework/pull/58399)
- \[13.x] add dispatchAfterResponse to the Dispatcher Contract by [@​jackbayliss](https://github.com/jackbayliss) in [#​58428](https://github.com/laravel/framework/pull/58428)
- \[13.x] Add origin verification to request forgery protection by [@​benbjurstrom](https://github.com/benbjurstrom) in [#​58400](https://github.com/laravel/framework/pull/58400)
- \[13.x] Improve `Enumerable` interface docblock types by [@​jnoordsij](https://github.com/jnoordsij) in [#​58181](https://github.com/laravel/framework/pull/58181)
- Add missing chain method to interface by [@​Jeroen-G](https://github.com/Jeroen-G) in [#​58429](https://github.com/laravel/framework/pull/58429)
- \[13.x] Use unescaped unicode in `Js` support class by default by [@​jnoordsij](https://github.com/jnoordsij) in [#​58471](https://github.com/laravel/framework/pull/58471)
- \[13.x] Add enum types to repository contract / allow enums for tagged caches by [@​jackbayliss](https://github.com/jackbayliss) in [#​58481](https://github.com/laravel/framework/pull/58481)
- \[13.x] Restore eager-loaded relations when deserializing collections by [@​dxnter](https://github.com/dxnter) in [#​58477](https://github.com/laravel/framework/pull/58477)
- \[13.x] Bump minimum PHPUnit by [@​crynobone](https://github.com/crynobone) in [#​58537](https://github.com/laravel/framework/pull/58537)
- \[13.x] Respect default value for class dependencies in BoundMethod::call by [@​comhon-project](https://github.com/comhon-project) in [#​58553](https://github.com/laravel/framework/pull/58553)
- \[13.x] Bump minimum `symfony/process` by [@​crynobone](https://github.com/crynobone) in [#​58548](https://github.com/laravel/framework/pull/58548)
- \[13.x] Fix `illuminate/json-schema` dependencies by [@​crynobone](https://github.com/crynobone) in [#​58612](https://github.com/laravel/framework/pull/58612)
- \[13.x] Add `hasSole` and `hasMany` to the `Enumerable` interface by [@​JosephSilber](https://github.com/JosephSilber) in [#​58610](https://github.com/laravel/framework/pull/58610)
- \[13.x] Ensure bootstrap withMiddleware works for the DownCommand by [@​jackbayliss](https://github.com/jackbayliss) in [#​58571](https://github.com/laravel/framework/pull/58571)
- \[13.x] Remove override attribute on removed method by [@​crynobone](https://github.com/crynobone) in [#​58628](https://github.com/laravel/framework/pull/58628)
- \[13.x] Ensures compatibility with `symfony/console` 8 by [@​crynobone](https://github.com/crynobone) in [#​58629](https://github.com/laravel/framework/pull/58629)
- \[13.x] Add `cc` to Mailer contract by [@​jackbayliss](https://github.com/jackbayliss) in [#​58667](https://github.com/laravel/framework/pull/58667)
- Fix ThrottleRequests over-throttling with multiple distinct rate limit keys ([#​54386](https://github.com/laravel/framework/issues/54386)) by [@​HeathNaylor](https://github.com/HeathNaylor) in [#​58707](https://github.com/laravel/framework/pull/58707)
- \[13.x] Add `markEmailAsUnverified` to `MustVerifyEmail` interface by [@​amirhshokri](https://github.com/amirhshokri) in [#​58701](https://github.com/laravel/framework/pull/58701)
- \[13.x] Adds previous exceptions in exception view by [@​DarkGhostHunter](https://github.com/DarkGhostHunter) in [#​58680](https://github.com/laravel/framework/pull/58680)
- Attributes by [@​taylorotwell](https://github.com/taylorotwell) in [#​58578](https://github.com/laravel/framework/pull/58578)
- \[13.x] Accept CarbonInterval for PendingProcess timeouts by [@​riesjart](https://github.com/riesjart) in [#​58842](https://github.com/laravel/framework/pull/58842)
- \[13.x] Add Setup/TearDown trait attributes by [@​jackbayliss](https://github.com/jackbayliss) in [#​58685](https://github.com/laravel/framework/pull/58685)
- \[13.x] Allow aliases to be set in Signature Attribute ([#​58853](https://github.com/laravel/framework/issues/58853)) by [@​jackbayliss](https://github.com/jackbayliss) in [#​58874](https://github.com/laravel/framework/pull/58874)
- \[13.x] Adds PHPUnit 13 support by [@​nunomaduro](https://github.com/nunomaduro) in [#​58890](https://github.com/laravel/framework/pull/58890)
- \[13.x] Display route binding fields in `route:list` output by [@​jackbayliss](https://github.com/jackbayliss) in [#​58889](https://github.com/laravel/framework/pull/58889)
- \[13.x] feat: respect `DeleteWhenMissingModels` attribute on queued notifications by [@​calebdw](https://github.com/calebdw) in [#​58908](https://github.com/laravel/framework/pull/58908)
- \[13.x] Resolve DeleteNotificationWhenMissingModelTest by [@​jackbayliss](https://github.com/jackbayliss) in [#​58919](https://github.com/laravel/framework/pull/58919)
- \[13.x] add missing methods to Queue interface by [@​cosmastech](https://github.com/cosmastech) in [#​58914](https://github.com/laravel/framework/pull/58914)
- \[13.x] chore: define closure type on Middleware by [@​calebdw](https://github.com/calebdw) in [#​58929](https://github.com/laravel/framework/pull/58929)
- \[13.x] Ensure SyncQueue JobAttempted gets the actual exception by [@​jackbayliss](https://github.com/jackbayliss) in [#​58954](https://github.com/laravel/framework/pull/58954)
- \[13.x] Throw exception when served disks share the same URI by [@​jackbayliss](https://github.com/jackbayliss) in [#​58960](https://github.com/laravel/framework/pull/58960)
- \[13.x] withoutOverlapping docblock by [@​jackbayliss](https://github.com/jackbayliss) in [#​58973](https://github.com/laravel/framework/pull/58973)
- \[13.x] Fix `composer.json` by [@​crynobone](https://github.com/crynobone) in [#​58975](https://github.com/laravel/framework/pull/58975)
- \[13.x] Update the dependencies version by [@​lucasmichot](https://github.com/lucasmichot) in [#​58995](https://github.com/laravel/framework/pull/58995)
- \[13.x] Normalize composer.json by [@​lucasmichot](https://github.com/lucasmichot) in [#​58996](https://github.com/laravel/framework/pull/58996)
- \[13.x] Add `flushLocks()` support to Cache stores by [@​amirhshokri](https://github.com/amirhshokri) in [#​58907](https://github.com/laravel/framework/pull/58907)
- \[13.x] Add cache `flushLocks()` events by [@​amirhshokri](https://github.com/amirhshokri) in [#​59006](https://github.com/laravel/framework/pull/59006)
- \[13.x] Refactor parameter names that are implemented from the interface by [@​mrvipchien](https://github.com/mrvipchien) in [#​59015](https://github.com/laravel/framework/pull/59015)
- \[13.x] Add missing [@​throws](https://github.com/throws) into docblock for various methods by [@​mrvipchien](https://github.com/mrvipchien) in [#​59016](https://github.com/laravel/framework/pull/59016)
- Add insertOrIgnoreReturning method by [@​antonkomarev](https://github.com/antonkomarev) in [#​59025](https://github.com/laravel/framework/pull/59025)
- Add corner case tests for insertOrIgnoreReturning by [@​antonkomarev](https://github.com/antonkomarev) in [#​59028](https://github.com/laravel/framework/pull/59028)
- Extra validation on query builder upsert by [@​antonkomarev](https://github.com/antonkomarev) in [#​59029](https://github.com/laravel/framework/pull/59029)
- \[13.x] Add ErrorBag attribute support for FormRequest by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​59033](https://github.com/laravel/framework/pull/59033)
- \[13.x] Add controller middleware attribute by [@​JurianArie](https://github.com/JurianArie) in [#​59030](https://github.com/laravel/framework/pull/59030)
- \[13.x] Add Authorize controller middleware attribute by [@​JurianArie](https://github.com/JurianArie) in [#​59048](https://github.com/laravel/framework/pull/59048)
- \[13.x] Fix `symfony/translation` deps by [@​crynobone](https://github.com/crynobone) in [#​59054](https://github.com/laravel/framework/pull/59054)
- \[13.x] Remove supports for `laravel/serializable-closure` v1 by [@​crynobone](https://github.com/crynobone) in [#​59053](https://github.com/laravel/framework/pull/59053)
- Add saveOrIgnore Eloquent Model method for conflict-safe inserts by [@​antonkomarev](https://github.com/antonkomarev) in [#​59026](https://github.com/laravel/framework/pull/59026)
- \[13.x] Add support for named arguments in event dispatching and broadcasting by [@​ph7jack](https://github.com/ph7jack) in [#​59075](https://github.com/laravel/framework/pull/59075)
- \[13.x] Supports `pda/pheanstalk` 8.0+ and remove 5.x by [@​crynobone](https://github.com/crynobone) in [#​59072](https://github.com/laravel/framework/pull/59072)
- \[13.x] Bump dependencies by [@​crynobone](https://github.com/crynobone) in [#​59069](https://github.com/laravel/framework/pull/59069)
- \[13.x] Add ability to set channel name via Log contextual attribute by [@​cosmastech](https://github.com/cosmastech) in [#​59101](https://github.com/laravel/framework/pull/59101)
- \[13.x] Ensure insertOrIgnoreReturning only marks records as modified when rows are inserted by [@​jackbayliss](https://github.com/jackbayliss) in [#​59083](https://github.com/laravel/framework/pull/59083)
- \[13.x] Clean up ModelInfo by [@​cosmastech](https://github.com/cosmastech) in [#​59080](https://github.com/laravel/framework/pull/59080)
- \[13.x] Clean up JsonApi by [@​cosmastech](https://github.com/cosmastech) in [#​59079](https://github.com/laravel/framework/pull/59079)
- \[13.x] Indicate that raw queries should be literal strings by [@​axlon](https://github.com/axlon) in [#​59081](https://github.com/laravel/framework/pull/59081)
- \[13.x] Update brick/math constraint and rounding mode constant by [@​balu-lt](https://github.com/balu-lt) in [#​59107](https://github.com/laravel/framework/pull/59107)
- \[13.x] fix: MorphToMany morphClass type by [@​calebdw](https://github.com/calebdw) in [#​59110](https://github.com/laravel/framework/pull/59110)
- \[13.x] Rename Middleware attribute parameter from $value to $middleware by [@​SanderMuller](https://github.com/SanderMuller) in [#​59133](https://github.com/laravel/framework/pull/59133)
- \[13.x] fix: QueueRoutes docblocks for getRoute and $routes property by [@​SanderMuller](https://github.com/SanderMuller) in [#​59119](https://github.com/laravel/framework/pull/59119)
- \[13.x] fix: DoesntContain docblock typo by [@​SanderMuller](https://github.com/SanderMuller) in [#​59117](https://github.com/laravel/framework/pull/59117)
- \[13.x] BusFake assertNothingDispatched should check all dispatches by [@​jackbayliss](https://github.com/jackbayliss) in [#​59118](https://github.com/laravel/framework/pull/59118)
- \[13.x] fix: Align JsonApiResource flushState maxRelationshipDepth with trait default by [@​SanderMuller](https://github.com/SanderMuller) in [#​59116](https://github.com/laravel/framework/pull/59116)
- \[13.x] Make Cache touch() TTL required and remove redundant value fetching by [@​SanderMuller](https://github.com/SanderMuller) in [#​59121](https://github.com/laravel/framework/pull/59121)
- \[13.x] Fix previousPath() for external referrers by [@​faytekin](https://github.com/faytekin) in [#​59159](https://github.com/laravel/framework/pull/59159)
- Add depth parameter to Arr::dot() by [@​faytekin](https://github.com/faytekin) in [#​59150](https://github.com/laravel/framework/pull/59150)
- \[13.x] Drop method\_exists checks in MonitorCommand by [@​jackbayliss](https://github.com/jackbayliss) in [#​59151](https://github.com/laravel/framework/pull/59151)
- \[12.x] Add strict integer validation to Numeric validation rule by [@​riesjart](https://github.com/riesjart) in [#​59156](https://github.com/laravel/framework/pull/59156)
- \[12.x] Add \*OrFail transaction methods to `BelongsToMany` by [@​SanderMuller](https://github.com/SanderMuller) in [#​59153](https://github.com/laravel/framework/pull/59153)
- \[13.x] Add Exception to BatchCanceled event by [@​jackbayliss](https://github.com/jackbayliss) in [#​59163](https://github.com/laravel/framework/pull/59163)
- \[13.x] Add support for `brick/math` 0.16 by [@​balu-lt](https://github.com/balu-lt) in [#​59165](https://github.com/laravel/framework/pull/59165)
- Bump tar from 7.5.9 to 7.5.11 in /src/Illuminate/Foundation/resources/exceptions/renderer by [@​dependabot](https://github.com/dependabot)\[bot] in [#​59164](https://github.com/laravel/framework/pull/59164)
- \[12.x] Add missing \*OrFail transaction methods to BelongsToMany by [@​erhanurgun](https://github.com/erhanurgun) in [#​59168](https://github.com/laravel/framework/pull/59168)
- \[12.x] Add inOrderOf() method to query builder by [@​faytekin](https://github.com/faytekin) in [#​59162](https://github.com/laravel/framework/pull/59162)
- \[12.x] Add tcp\_keepalive option to PhpRedis connector by [@​heikokrebs](https://github.com/heikokrebs) in [#​59158](https://github.com/laravel/framework/pull/59158)
- \[13.x] Add schedule:pause / resume command by [@​jackbayliss](https://github.com/jackbayliss) in [#​59169](https://github.com/laravel/framework/pull/59169)
- \[12.x] un`tap` PendingRequest by [@​cosmastech](https://github.com/cosmastech) in [#​59188](https://github.com/laravel/framework/pull/59188)
- \[12.x] Fix float to int deprecation in trans\_choice() for certain locales by [@​hamedelasma](https://github.com/hamedelasma) in [#​59174](https://github.com/laravel/framework/pull/59174)
- \[12.x] Allow `touch()` to accept multiple columns by [@​devajmeireles](https://github.com/devajmeireles) in [#​59175](https://github.com/laravel/framework/pull/59175)
- Revert "Add composite index to jobs table migration for improved queue polling" by [@​taylorotwell](https://github.com/taylorotwell) in [#​59202](https://github.com/laravel/framework/pull/59202)
- \[12.x] Add fluent string validation rule builder by [@​SanderMuller](https://github.com/SanderMuller) in [#​59201](https://github.com/laravel/framework/pull/59201)
- \[13.x] Add schedule resume and pause events by [@​jackbayliss](https://github.com/jackbayliss) in [#​59172](https://github.com/laravel/framework/pull/59172)
- \[13.x] insertOrIgnoreReturning with multiple unique keys by [@​tpetry](https://github.com/tpetry) in [#​59187](https://github.com/laravel/framework/pull/59187)
- Update `Command::withProgressBar` phpdoc to account for arrow functions and non-void return types by [@​billypoke](https://github.com/billypoke) in [#​58766](https://github.com/laravel/framework/pull/58766)
- \[12.x] Lazily evaluate value for constraints in `HasOneOrManyThrough` by [@​Jacobs63](https://github.com/Jacobs63) in [#​59231](https://github.com/laravel/framework/pull/59231)
- Add string helper to get initials from a string by [@​denjaland](https://github.com/denjaland) in [#​59230](https://github.com/laravel/framework/pull/59230)
- fix: Strip gzip-compressed output from concurrent process response by [@​NikhiltGhalme](https://github.com/NikhiltGhalme) in [#​59224](https://github.com/laravel/framework/pull/59224)
- \[12.x] Fix failing tests introduced by [#​59201](https://github.com/laravel/framework/issues/59201) by [@​SanderMuller](https://github.com/SanderMuller) in [#​59207](https://github.com/laravel/framework/pull/59207)
- \[12.x] Avoid redundant `Util::getParameterClassName()` call in container resolution by [@​SanderMuller](https://github.com/SanderMuller) in [#​59220](https://github.com/laravel/framework/pull/59220)
- \[12.x] Add missing conditional validation rule builders by [@​SanderMuller](https://github.com/SanderMuller) in [#​59209](https://github.com/laravel/framework/pull/59209)
- \[12.x] Skip placeholder replacements when message does not contain them by [@​SanderMuller](https://github.com/SanderMuller) in [#​59211](https://github.com/laravel/framework/pull/59211)
- \[12.x] Use `array_push` with spread operator in `MessageBag::all()` by [@​SanderMuller](https://github.com/SanderMuller) in [#​59217](https://github.com/laravel/framework/pull/59217)
- \[12.x] Cache Route instances in CompiledRouteCollection::getByName() by [@​SanderMuller](https://github.com/SanderMuller) in [#​59221](https://github.com/laravel/framework/pull/59221)
- \[13.x] Add additional Artisan attributes for usage, help and hidden by [@​ziadoz](https://github.com/ziadoz) in [#​59204](https://github.com/laravel/framework/pull/59204)
- \[12.x] Accept CarbonInterval for retry sleep duration by [@​riesjart](https://github.com/riesjart) in [#​59232](https://github.com/laravel/framework/pull/59232)
- \[12.x] Fix failing phpstan by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​59245](https://github.com/laravel/framework/pull/59245)
- \[12.x] Update comments for PlanetScale MySQL and PostgreSQL by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​59244](https://github.com/laravel/framework/pull/59244)
- \[12.x] Use big integers for database cache expiration column by [@​tanerkay](https://github.com/tanerkay) in [#​59243](https://github.com/laravel/framework/pull/59243)
- \[13.x] Allow brick/math ^0.17 by [@​jackbayliss](https://github.com/jackbayliss) in [#​59249](https://github.com/laravel/framework/pull/59249)
- \[12.x] Display file path and line number for closure routes in `route:list` by [@​devajmeireles](https://github.com/devajmeireles) in [#​59237](https://github.com/laravel/framework/pull/59237)
- \[12.x] Add wantsMarkdown() and acceptsMarkdown() request methods by [@​joetannenbaum](https://github.com/joetannenbaum) in [#​59238](https://github.com/laravel/framework/pull/59238)
- \[13.x] Ensure RequiredUnless handles null by [@​jackbayliss](https://github.com/jackbayliss) in [#​59235](https://github.com/laravel/framework/pull/59235)
### [`v12.56.0`](https://github.com/laravel/framework/releases/tag/v12.56.0)
[Compare Source](https://github.com/laravel/framework/compare/v12.55.1...v12.56.0)
- \[12.x] `schedule:list` display expression in the correct timezone by [@​xiCO2k](https://github.com/xiCO2k) in [#​59307](https://github.com/laravel/framework/pull/59307)
- \[12.x] Fix validation wildcard array message type error by [@​sadique-cws](https://github.com/sadique-cws) in [#​59339](https://github.com/laravel/framework/pull/59339)
- Preserve class type of mocked classes by [@​AJenbo](https://github.com/AJenbo) in [#​59353](https://github.com/laravel/framework/pull/59353)
### [`v12.55.1`](https://github.com/laravel/framework/releases/tag/v12.55.1)
[Compare Source](https://github.com/laravel/framework/compare/v12.55.0...v12.55.1)
- \[12.x] Correct truncate exceptions at by [@​bretto36](https://github.com/bretto36) in [#​59239](https://github.com/laravel/framework/pull/59239)
- \[12.x] Fix float pluralization in trans\_choice() by [@​JulianGlueck](https://github.com/JulianGlueck) in [#​59268](https://github.com/laravel/framework/pull/59268)
- \[12.x] Fix tests on PHP 8.5 by [@​SanderMuller](https://github.com/SanderMuller) in [#​59251](https://github.com/laravel/framework/pull/59251)
### [`v12.55.0`](https://github.com/laravel/framework/releases/tag/v12.55.0)
[Compare Source](https://github.com/laravel/framework/compare/v12.54.1...v12.55.0)
- Add depth parameter to Arr::dot() by [@​faytekin](https://github.com/faytekin) in [#​59150](https://github.com/laravel/framework/pull/59150)
- \[12.x] Add strict integer validation to Numeric validation rule by [@​riesjart](https://github.com/riesjart) in [#​59156](https://github.com/laravel/framework/pull/59156)
- \[12.x] Add \*OrFail transaction methods to `BelongsToMany` by [@​SanderMuller](https://github.com/SanderMuller) in [#​59153](https://github.com/laravel/framework/pull/59153)
- Bump tar from 7.5.9 to 7.5.11 in /src/Illuminate/Foundation/resources/exceptions/renderer by [@​dependabot](https://github.com/dependabot)\[bot] in [#​59164](https://github.com/laravel/framework/pull/59164)
- \[12.x] Add missing \*OrFail transaction methods to BelongsToMany by [@​erhanurgun](https://github.com/erhanurgun) in [#​59168](https://github.com/laravel/framework/pull/59168)
- \[12.x] Add inOrderOf() method to query builder by [@​faytekin](https://github.com/faytekin) in [#​59162](https://github.com/laravel/framework/pull/59162)
- \[12.x] Add tcp\_keepalive option to PhpRedis connector by [@​heikokrebs](https://github.com/heikokrebs) in [#​59158](https://github.com/laravel/framework/pull/59158)
- \[12.x] un`tap` PendingRequest by [@​cosmastech](https://github.com/cosmastech) in [#​59188](https://github.com/laravel/framework/pull/59188)
- \[12.x] Fix float to int deprecation in trans\_choice() for certain locales by [@​hamedelasma](https://github.com/hamedelasma) in [#​59174](https://github.com/laravel/framework/pull/59174)
- \[12.x] Allow `touch()` to accept multiple columns by [@​devajmeireles](https://github.com/devajmeireles) in [#​59175](https://github.com/laravel/framework/pull/59175)
- Revert "Add composite index to jobs table migration for improved queue polling" by [@​taylorotwell](https://github.com/taylorotwell) in [#​59202](https://github.com/laravel/framework/pull/59202)
- \[12.x] Add fluent string validation rule builder by [@​SanderMuller](https://github.com/SanderMuller) in [#​59201](https://github.com/laravel/framework/pull/59201)
- Update `Command::withProgressBar` phpdoc to account for arrow functions and non-void return types by [@​billypoke](https://github.com/billypoke) in [#​58766](https://github.com/laravel/framework/pull/58766)
- \[12.x] Lazily evaluate value for constraints in `HasOneOrManyThrough` by [@​Jacobs63](https://github.com/Jacobs63) in [#​59231](https://github.com/laravel/framework/pull/59231)
- Add string helper to get initials from a string by [@​denjaland](https://github.com/denjaland) in [#​59230](https://github.com/laravel/framework/pull/59230)
- fix: Strip gzip-compressed output from concurrent process response by [@​NikhiltGhalme](https://github.com/NikhiltGhalme) in [#​59224](https://github.com/laravel/framework/pull/59224)
- \[12.x] Fix failing tests introduced by [#​59201](https://github.com/laravel/framework/issues/59201) by [@​SanderMuller](https://github.com/SanderMuller) in [#​59207](https://github.com/laravel/framework/pull/59207)
- \[12.x] Avoid redundant `Util::getParameterClassName()` call in container resolution by [@​SanderMuller](https://github.com/SanderMuller) in [#​59220](https://github.com/laravel/framework/pull/59220)
- \[12.x] Add missing conditional validation rule builders by [@​SanderMuller](https://github.com/SanderMuller) in [#​59209](https://github.com/laravel/framework/pull/59209)
- \[12.x] Skip placeholder replacements when message does not contain them by [@​SanderMuller](https://github.com/SanderMuller) in [#​59211](https://github.com/laravel/framework/pull/59211)
- \[12.x] Use `array_push` with spread operator in `MessageBag::all()` by [@​SanderMuller](https://github.com/SanderMuller) in [#​59217](https://github.com/laravel/framework/pull/59217)
- \[12.x] Cache Route instances in CompiledRouteCollection::getByName() by [@​SanderMuller](https://github.com/SanderMuller) in [#​59221](https://github.com/laravel/framework/pull/59221)
- \[12.x] Accept CarbonInterval for retry sleep duration by [@​riesjart](https://github.com/riesjart) in [#​59232](https://github.com/laravel/framework/pull/59232)
- \[12.x] Fix failing phpstan by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​59245](https://github.com/laravel/framework/pull/59245)
- \[12.x] Update comments for PlanetScale MySQL and PostgreSQL by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​59244](https://github.com/laravel/framework/pull/59244)
- \[12.x] Use big integers for database cache expiration column by [@​tanerkay](https://github.com/tanerkay) in [#​59243](https://github.com/laravel/framework/pull/59243)
- \[12.x] Display file path and line number for closure routes in `route:list` by [@​devajmeireles](https://github.com/devajmeireles) in [#​59237](https://github.com/laravel/framework/pull/59237)
- \[12.x] Add wantsMarkdown() and acceptsMarkdown() request methods by [@​joetannenbaum](https://github.com/joetannenbaum) in [#​59238](https://github.com/laravel/framework/pull/59238)
### [`v12.54.1`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v12541---2026-03-10)
[Compare Source](https://github.com/laravel/framework/compare/v12.54.0...v12.54.1)
- \[12.x] Makes imports consistent by [@​nunomaduro](https://github.com/nunomaduro) in [#​59149](https://github.com/laravel/framework/pull/59149)
### [`v12.54.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v12540---2026-03-10)
[Compare Source](https://github.com/laravel/framework/compare/v12.53.0...v12.54.0)
- \[12.x] Fix division by zero error in `repeatEvery()` method by [@​amirhshokri](https://github.com/amirhshokri) in [#​58987](https://github.com/laravel/framework/pull/58987)
- \[12.x] Allow app.editor.base\_path to be an empty string by [@​kminek](https://github.com/kminek) in [#​58991](https://github.com/laravel/framework/pull/58991)
- \[12.x] Add missing, remove unused parameters to docblocks by [@​mrvipchien](https://github.com/mrvipchien) in [#​58989](https://github.com/laravel/framework/pull/58989)
- Fix URL validation for punycode subdomains by [@​mpa12](https://github.com/mpa12) in [#​58982](https://github.com/laravel/framework/pull/58982)
- \[12.x] Prevent queue deadlock when reserving a job throws an exception (e.g., attempts overflow) by [@​sadique-cws](https://github.com/sadique-cws) in [#​58978](https://github.com/laravel/framework/pull/58978)
- \[12.x] bug: throttle with redis ignores after callback by [@​RobertBoes](https://github.com/RobertBoes) in [#​58990](https://github.com/laravel/framework/pull/58990)
- Update brick/math version constraint to include 0.15 by [@​julien-boudry](https://github.com/julien-boudry) in [#​59005](https://github.com/laravel/framework/pull/59005)
- Revert "Update brick/math version constraint to include 0.15" by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​59009](https://github.com/laravel/framework/pull/59009)
- Bump rollup from 4.46.3 to 4.59.0 in /src/Illuminate/Foundation/resources/exceptions/renderer by [@​dependabot](https://github.com/dependabot)\[bot] in [#​59013](https://github.com/laravel/framework/pull/59013)
- \[12.x] Fix TwoColumnDetail stripping trailing punctuation from second column values by [@​theritvars](https://github.com/theritvars) in [#​59010](https://github.com/laravel/framework/pull/59010)
- \[12.x] Add support for assertions on `BinaryFileResponse` by [@​axlon](https://github.com/axlon) in [#​59018](https://github.com/laravel/framework/pull/59018)
- \[12.x] fix: array offset deprecation warning by [@​calebdw](https://github.com/calebdw) in [#​59019](https://github.com/laravel/framework/pull/59019)
- \[12.x] Add tsvector column type for PostgreSQL by [@​milroyfraser](https://github.com/milroyfraser) in [#​59004](https://github.com/laravel/framework/pull/59004)
- Memory Limit passed as string when run from supervisor by [@​turbo124](https://github.com/turbo124) in [#​59049](https://github.com/laravel/framework/pull/59049)
- \[12.x] Fix facade cache file permissions by [@​nkoestinger](https://github.com/nkoestinger) in [#​59059](https://github.com/laravel/framework/pull/59059)
- \[12.x] Display oldest pending job in queue:monitor output by [@​jackbayliss](https://github.com/jackbayliss) in [#​59073](https://github.com/laravel/framework/pull/59073)
- Fix type() method return type in Illuminate\Filesystem\Filesystem by [@​GNfsys](https://github.com/GNfsys) in [#​59071](https://github.com/laravel/framework/pull/59071)
- \[12.x] Test Improvements by [@​crynobone](https://github.com/crynobone) in [#​59068](https://github.com/laravel/framework/pull/59068)
- \[12.x] Wrap flags in `int-mask-of` annotation by [@​shaedrich](https://github.com/shaedrich) in [#​59082](https://github.com/laravel/framework/pull/59082)
- Fix after-commit observers breaking -ing event cancellation by [@​eyupcanakman](https://github.com/eyupcanakman) in [#​59058](https://github.com/laravel/framework/pull/59058)
- \[12.x] Fix migrate:fresh failing when database does not exist by [@​MElkmeshi](https://github.com/MElkmeshi) in [#​59113](https://github.com/laravel/framework/pull/59113)
- \[12.x] Add `interval()` method to `InteractsWithData` by [@​SanderMuller](https://github.com/SanderMuller) in [#​59114](https://github.com/laravel/framework/pull/59114)
- \[12.x] Hash displayName() in cache lock keys by [@​A5hleyRich](https://github.com/A5hleyRich) in [#​59141](https://github.com/laravel/framework/pull/59141)
- \[12.x] Improved html test helpers by [@​jnoordsij](https://github.com/jnoordsij) in [#​59140](https://github.com/laravel/framework/pull/59140)
- \[12.x] Add Model::withoutRelation() for selective relation unloading by [@​SanderMuller](https://github.com/SanderMuller) in [#​59137](https://github.com/laravel/framework/pull/59137)
- \[12.x] Include request context in HTTP client Response::dump() by [@​SanderMuller](https://github.com/SanderMuller) in [#​59136](https://github.com/laravel/framework/pull/59136)
- Fix enum handling in ModelNotFoundException error message by [@​isaackaara](https://github.com/isaackaara) in [#​59132](https://github.com/laravel/framework/pull/59132)
- \[12.x] Update composer.json to enforce commonmark version without DisallowedRawHtmlRenderer exploit by [@​Smoggert](https://github.com/Smoggert) in [#​59131](https://github.com/laravel/framework/pull/59131)
- \[12.x] Suppress chmod errors in Filesystem::replace() for non-POSIX filesystems by [@​eyupcanakman](https://github.com/eyupcanakman) in [#​59126](https://github.com/laravel/framework/pull/59126)
- Add composite index to jobs table migration for improved queue polling by [@​firecow](https://github.com/firecow) in [#​59111](https://github.com/laravel/framework/pull/59111)
- \[12.x] Load custom markdown extensions for mail by [@​dasundev](https://github.com/dasundev) in [#​59051](https://github.com/laravel/framework/pull/59051)
- \[12.x] Fix docblock for RateLimiter `for()` method by [@​amirhshokri](https://github.com/amirhshokri) in [#​59144](https://github.com/laravel/framework/pull/59144)
- \[12.x] Deduplicate paths in view:cache by [@​ganyicz](https://github.com/ganyicz) in [#​59145](https://github.com/laravel/framework/pull/59145)
### [`v12.53.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v12530---2026-02-24)
[Compare Source](https://github.com/laravel/framework/compare/v12.52.0...v12.53.0)
- \[12.x] Add multipleOf support to JsonSchema numeric types by [@​Amirhf1](https://github.com/Amirhf1) in [#​58903](https://github.com/laravel/framework/pull/58903)
- \[12.x] chore: don't format notifiables in NotificationSender::send by [@​calebdw](https://github.com/calebdw) in [#​58900](https://github.com/laravel/framework/pull/58900)
- \[12.x] Add vector option to whereFullText for pre-computed tsvector columns by [@​milroyfraser](https://github.com/milroyfraser) in [#​58893](https://github.com/laravel/framework/pull/58893)
- \[12.x] Add array key support for `buildMorphMapFromModels()` function by [@​josephkerkhof](https://github.com/josephkerkhof) in [#​58891](https://github.com/laravel/framework/pull/58891)
- \[12.x] Fix RequestException summarizing for Guzzle streamed responses by [@​cosmastech](https://github.com/cosmastech) in [#​58909](https://github.com/laravel/framework/pull/58909)
- \[12.x] Tests for streamed RequestException by [@​cosmastech](https://github.com/cosmastech) in [#​58910](https://github.com/laravel/framework/pull/58910)
- Support a serializable classes value on caches by [@​taylorotwell](https://github.com/taylorotwell) in [#​58911](https://github.com/laravel/framework/pull/58911)
- \[12.x] Simplify TokenGuard methods by [@​Amirhf1](https://github.com/Amirhf1) in [#​58923](https://github.com/laravel/framework/pull/58923)
- \[12.x] Add uniqueItems support to JsonSchema ArrayType by [@​Amirhf1](https://github.com/Amirhf1) in [#​58922](https://github.com/laravel/framework/pull/58922)
- \[12.x] Add tests for `PhpRedisClusterConnection` flushdb method by [@​miladev95](https://github.com/miladev95) in [#​58917](https://github.com/laravel/framework/pull/58917)
- \[12.x] Add support for named arguments in event dispatching and broadcasting by [@​ph7jack](https://github.com/ph7jack) in [#​58913](https://github.com/laravel/framework/pull/58913)
- \[12.x] Allow `down` command to refresh maintenance mode options by [@​alies-dev](https://github.com/alies-dev) in [#​58918](https://github.com/laravel/framework/pull/58918)
- \[12.x] Rollback lingering PDO transaction before retrying on commit deadlock by [@​dxnter](https://github.com/dxnter) in [#​58906](https://github.com/laravel/framework/pull/58906)
- \[12.x] Simplify queue resolution using `match` expression by [@​josephkerkhof](https://github.com/josephkerkhof) in [#​58928](https://github.com/laravel/framework/pull/58928)
- Bump tar from 7.5.7 to 7.5.9 in /src/Illuminate/Foundation/resources/exceptions/renderer by [@​dependabot](https://github.com/dependabot)\[bot] in [#​58931](https://github.com/laravel/framework/pull/58931)
- \[12.x] Fix model serialization in queue jobs by [@​axlon](https://github.com/axlon) in [#​58939](https://github.com/laravel/framework/pull/58939)
- \[12.x] Change Mail text alignment from left to start by [@​zvizvi](https://github.com/zvizvi) in [#​58935](https://github.com/laravel/framework/pull/58935)
- \[12.x] Refactor `convertValuesToBoolean` to use `match` for cleaner logic by [@​josephkerkhof](https://github.com/josephkerkhof) in [#​58927](https://github.com/laravel/framework/pull/58927)
- \[12.x] Allow Scheduled Command `Event` macros to be applied to schedule groups by [@​stevebauman](https://github.com/stevebauman) in [#​58926](https://github.com/laravel/framework/pull/58926)
- \[12.x] Fix race condition on creating the real-time facade cache file ([#​58945](https://github.com/laravel/framework/issues/58945)) by [@​sosias](https://github.com/sosias) in [#​58947](https://github.com/laravel/framework/pull/58947)
- \[12.x] Show all mismatched values in `assertSessionHasAll` failure output by [@​dxnter](https://github.com/dxnter) in [#​58946](https://github.com/laravel/framework/pull/58946)
- Fix RetryCommand not working for SQS FIFO queue by [@​cwang22](https://github.com/cwang22) in [#​58936](https://github.com/laravel/framework/pull/58936)
- \[12.x] Improve return types for Wormhole and InteractsWithTime by [@​KentarouTakeda](https://github.com/KentarouTakeda) in [#​58951](https://github.com/laravel/framework/pull/58951)
- \[12.x] Add `Cache::funnel()` for concurrency limiting with any cache driver by [@​mathiasgrimm](https://github.com/mathiasgrimm) in [#​58439](https://github.com/laravel/framework/pull/58439)
- \[12.x] Ensure `oldest_pending` is displayed in `queue:monitor` by [@​jackbayliss](https://github.com/jackbayliss) in [#​58952](https://github.com/laravel/framework/pull/58952)
- \[12.x] Fix/cross database null safe equals by [@​patrickomeara](https://github.com/patrickomeara) in [#​58962](https://github.com/laravel/framework/pull/58962)
- \[12.x] Add MySQL inRandomOrder regression tests by [@​laraib15](https://github.com/laraib15) in [#​58966](https://github.com/laravel/framework/pull/58966)
- \[12.x] Add missing [@​throws](https://github.com/throws) docblocks to Illuminate/Http by [@​Amirhf1](https://github.com/Amirhf1) in [#​58965](https://github.com/laravel/framework/pull/58965)
- Fix Invalid Types by [@​RyanSchaefer](https://github.com/RyanSchaefer) in [#​58963](https://github.com/laravel/framework/pull/58963)
- JSONP Check by [@​taylorotwell](https://github.com/taylorotwell) in [#​58971](https://github.com/laravel/framework/pull/58971)
- \[12.x] Resolve Stan Mailable CI error by [@​jackbayliss](https://github.com/jackbayliss) in [#​58972](https://github.com/laravel/framework/pull/58972)
- \[12.x] Remove unnecessary dirname calls. by [@​jelleroorda](https://github.com/jelleroorda) in [#​58984](https://github.com/laravel/framework/pull/58984)
- \[12.x] Add missing [@​throws](https://github.com/throws) docblocks to `Serializer` and `Type` classes in `Illuminate/JsonSchema` by [@​mrvipchien](https://github.com/mrvipchien) in [#​58981](https://github.com/laravel/framework/pull/58981)
### [`v12.52.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v12520---2026-02-17)
[Compare Source](https://github.com/laravel/framework/compare/v12.51.0...v12.52.0)
- \[12.x] Fix: `@return` in doc blocks by [@​alipowerful7](https://github.com/alipowerful7) in [#​58746](https://github.com/laravel/framework/pull/58746)
- \[12.x] Ensure defer callbacks aren't discarded when using the sync queue by [@​jackbayliss](https://github.com/jackbayliss) in [#​58745](https://github.com/laravel/framework/pull/58745)
- \[12.x] Refactor: remove `Arr::wrap()` and add `Collection::wrap()` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58748](https://github.com/laravel/framework/pull/58748)
- Add support for `temporaryUploadUrl` to the `local` filesystem by [@​mnapoli](https://github.com/mnapoli) in [#​58499](https://github.com/laravel/framework/pull/58499)
- Only merge cached casts for accessed attribute by [@​ug-christoph](https://github.com/ug-christoph) in [#​57627](https://github.com/laravel/framework/pull/57627)
- \[12.x] Sort stan issue on PendingRequest by [@​jackbayliss](https://github.com/jackbayliss) in [#​58760](https://github.com/laravel/framework/pull/58760)
- \[12.x] Update alphabetical order in facades.yml by [@​luisscruza](https://github.com/luisscruza) in [#​58757](https://github.com/laravel/framework/pull/58757)
- \[12.x] allow string-based expressions for selectExpression() by [@​tpetry](https://github.com/tpetry) in [#​58753](https://github.com/laravel/framework/pull/58753)
- Revert "\[12.x] Adjust freshTimestamp for SQL Server" by [@​calebdw](https://github.com/calebdw) in [#​58758](https://github.com/laravel/framework/pull/58758)
- \[12.x] Fix return empty Collection for non-model JSON:API resources by [@​noir4y](https://github.com/noir4y) in [#​58752](https://github.com/laravel/framework/pull/58752)
- \[12.x] Refactor: remove extra space by [@​alipowerful7](https://github.com/alipowerful7) in [#​58751](https://github.com/laravel/framework/pull/58751)
- \[12.x] Standardize regex delimiter in ObserverMakeCommand::parseModel by [@​mohammadRezaei1380](https://github.com/mohammadRezaei1380) in [#​58777](https://github.com/laravel/framework/pull/58777)
- \[12.x] Fix incorrect [@​return](https://github.com/return) type in VendorPublishCommand::publishTag by [@​mohammadRezaei1380](https://github.com/mohammadRezaei1380) in [#​58774](https://github.com/laravel/framework/pull/58774)
- Fix phpdoc type in promptForMissingArgumentsUsing by [@​billypoke](https://github.com/billypoke) in [#​58768](https://github.com/laravel/framework/pull/58768)
- \[12.x] cast `Batch::progress()` return value to `int` by [@​zjbarg](https://github.com/zjbarg) in [#​58767](https://github.com/laravel/framework/pull/58767)
- \[12.x] Drop Collection import from `AbstractRouteCollection` by [@​jackbayliss](https://github.com/jackbayliss) in [#​58769](https://github.com/laravel/framework/pull/58769)
- \[12.x] Fix missing InputArgument::IS\_ARRAY in getArguments PHPDoc by [@​kayw-geek](https://github.com/kayw-geek) in [#​58771](https://github.com/laravel/framework/pull/58771)
- \[12.x] Fix: `@return` for `resolveResourceRelationshipIdentifiers()` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58764](https://github.com/laravel/framework/pull/58764)
- \[12.x] `Mailable::later()` does not set delay on `SendQueuedMailable` instance by [@​amirhshokri](https://github.com/amirhshokri) in [#​58765](https://github.com/laravel/framework/pull/58765)
- \[12.x] Refactor: use `enum_value()` helper for environment value extraction by [@​alipowerful7](https://github.com/alipowerful7) in [#​58785](https://github.com/laravel/framework/pull/58785)
- \[12.x] Add delay support assertions for queued mailables by [@​amirhshokri](https://github.com/amirhshokri) in [#​58787](https://github.com/laravel/framework/pull/58787)
- Fix MySQL connection string to use --ssl-mode=DISABLED for modern clients by [@​AJenbo](https://github.com/AJenbo) in [#​58786](https://github.com/laravel/framework/pull/58786)
- \[12.x] Refactor: standardize regex by [@​alipowerful7](https://github.com/alipowerful7) in [#​58789](https://github.com/laravel/framework/pull/58789)
- \[12.x] Allow $preserveKeys param for LazyCollection random by [@​jackbayliss](https://github.com/jackbayliss) in [#​58791](https://github.com/laravel/framework/pull/58791)
- \[12.x] Refactor: `new Collection()` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58793](https://github.com/laravel/framework/pull/58793)
- \[12.x] Add `makeMany` method to Factory by [@​jackbayliss](https://github.com/jackbayliss) in [#​58795](https://github.com/laravel/framework/pull/58795)
- \[12.x] Add `withoutAfterMaking()` and `withoutAfterCreating()` factory helpers by [@​ziadoz](https://github.com/ziadoz) in [#​58794](https://github.com/laravel/framework/pull/58794)
- \[12.x] Backport withMiddleware changes from 13.x by [@​jackbayliss](https://github.com/jackbayliss) in [#​58798](https://github.com/laravel/framework/pull/58798)
- \[12.x] Fix: add `|array` in doc block by [@​alipowerful7](https://github.com/alipowerful7) in [#​58805](https://github.com/laravel/framework/pull/58805)
- \[12.x] Add option to opt out of parallel safe cache prefix by [@​jackbayliss](https://github.com/jackbayliss) in [#​58801](https://github.com/laravel/framework/pull/58801)
- \[12.x] Normalize Throwable docblocks to fully-qualified name by [@​amirhshokri](https://github.com/amirhshokri) in [#​58802](https://github.com/laravel/framework/pull/58802)
- \[12.x] Refactor: remove unnecessary `\BackedEnum` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58807](https://github.com/laravel/framework/pull/58807)
- Use atomic writes when creating inline Blade component views by [@​cyppe](https://github.com/cyppe) in [#​58815](https://github.com/laravel/framework/pull/58815)
- \[12.x] Add missing tests for Request::fullUrlWithoutQuery by [@​miladev95](https://github.com/miladev95) in [#​58814](https://github.com/laravel/framework/pull/58814)
- Improve File::toKilobytes() DocBlock return type by [@​Amirhf1](https://github.com/Amirhf1) in [#​58811](https://github.com/laravel/framework/pull/58811)
- Use atomic writes in BladeCompiler to prevent race condition by [@​cyppe](https://github.com/cyppe) in [#​58812](https://github.com/laravel/framework/pull/58812)
- \[12.x] Refactor: add `JSON decoded` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58830](https://github.com/laravel/framework/pull/58830)
- \[12.x] Refactor: add missing `@throws` tag in dock block by [@​alipowerful7](https://github.com/alipowerful7) in [#​58829](https://github.com/laravel/framework/pull/58829)
- \[12.x] Formatting by [@​amirhshokri](https://github.com/amirhshokri) in [#​58828](https://github.com/laravel/framework/pull/58828)
- \[12x]Refactor: remove unnecessary \BackedEnum in HasAttributes.php by [@​mohammadRezaei1380](https://github.com/mohammadRezaei1380) in [#​58827](https://github.com/laravel/framework/pull/58827)
- \[12x] Refactor conditional message formatting using match expression by [@​mohammadRezaei1380](https://github.com/mohammadRezaei1380) in [#​58825](https://github.com/laravel/framework/pull/58825)
- \[12.x] Refactor: use `match` expression by [@​alipowerful7](https://github.com/alipowerful7) in [#​58824](https://github.com/laravel/framework/pull/58824)
- \[12.x] Simplify `compileSelect` method return by [@​amirhshokri](https://github.com/amirhshokri) in [#​58821](https://github.com/laravel/framework/pull/58821)
- \[12.x] Refactor: simplify code by [@​alipowerful7](https://github.com/alipowerful7) in [#​58820](https://github.com/laravel/framework/pull/58820)
- \[12.x] Refactor: remove unnecessary `\BackedEnum` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58818](https://github.com/laravel/framework/pull/58818)
- \[12.x] Ensure HttpClientTest doesnt flake in Windows CI by [@​jackbayliss](https://github.com/jackbayliss) in [#​58817](https://github.com/laravel/framework/pull/58817)
- \[12.x] Refactor: `JSON decoded` to `decoded JSON` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58849](https://github.com/laravel/framework/pull/58849)
- \[12.x] Allow closure parameters in docblock for when() helper function by [@​gazben](https://github.com/gazben) in [#​58862](https://github.com/laravel/framework/pull/58862)
- \[12.x] Fix typo in cache `composer.json` by [@​amirhshokri](https://github.com/amirhshokri) in [#​58875](https://github.com/laravel/framework/pull/58875)
- \[12.x] Remove unnecessary `forgetDriver()`from TestCaches by [@​jackbayliss](https://github.com/jackbayliss) in [#​58878](https://github.com/laravel/framework/pull/58878)
- Revert "\[12.x] Fixed precision checks for column types in SQL Server grammar" by [@​taylorotwell](https://github.com/taylorotwell) in [#​58888](https://github.com/laravel/framework/pull/58888)
- \[12.x] Display closures and standalone functions correctly in exception trace by [@​avosalmon](https://github.com/avosalmon) in [#​58879](https://github.com/laravel/framework/pull/58879)
### [`v12.51.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v12510---2026-02-10)
[Compare Source](https://github.com/laravel/framework/compare/v12.50.0...v12.51.0)
- Remove type hint in favor of return type by [@​WendellAdriel](https://github.com/WendellAdriel) in [#​58621](https://github.com/laravel/framework/pull/58621)
- \[12.x] Adjust freshTimestamp for SQL Server by [@​aimeos](https://github.com/aimeos) in [#​58614](https://github.com/laravel/framework/pull/58614)
- \[12.x] Handle binary data in Js::encode() debug renderer by [@​denis-chmel](https://github.com/denis-chmel) in [#​58618](https://github.com/laravel/framework/pull/58618)
- \[12.x] Add ArrayObject props to AsEncryptedArrayObject to match AsArrayObject by [@​AndrewMast](https://github.com/AndrewMast) in [#​58619](https://github.com/laravel/framework/pull/58619)
- fix: Arr::wrap() return type by [@​calebdw](https://github.com/calebdw) in [#​58625](https://github.com/laravel/framework/pull/58625)
- \[12.x] Fix typo in type definition by [@​shaedrich](https://github.com/shaedrich) in [#​58624](https://github.com/laravel/framework/pull/58624)
- \[12.x] Prevent dupe locale checks in `Lang::get()` when locale matches fallback by [@​jackbayliss](https://github.com/jackbayliss) in [#​58626](https://github.com/laravel/framework/pull/58626)
- \[12.x] chore: add deprecation to Request::get() by [@​calebdw](https://github.com/calebdw) in [#​58635](https://github.com/laravel/framework/pull/58635)
- \[12.x] Fix Str::substrReplace for edge cases with negative offset or length by [@​jboonstra70](https://github.com/jboonstra70) in [#​58634](https://github.com/laravel/framework/pull/58634)
- \[12.x] Refactor: improve doc blocks by [@​alipowerful7](https://github.com/alipowerful7) in [#​58630](https://github.com/laravel/framework/pull/58630)
- \[12.x] Add BatchCancelled Event by [@​jackbayliss](https://github.com/jackbayliss) in [#​58627](https://github.com/laravel/framework/pull/58627)
- \[12.x] Fix typo in type definition by [@​amirhshokri](https://github.com/amirhshokri) in [#​58638](https://github.com/laravel/framework/pull/58638)
- \[12.x] Update `reload` tasks to include `schedule:interruption` by [@​adevade](https://github.com/adevade) in [#​58637](https://github.com/laravel/framework/pull/58637)
- docs: add missing description to FilesystemAdapter::report() docblock by [@​eranishojha](https://github.com/eranishojha) in [#​58640](https://github.com/laravel/framework/pull/58640)
- \[12.x] Allow closures for values in `firstOrCreate` and `createOrFirst` by [@​gcavanunez](https://github.com/gcavanunez) in [#​58639](https://github.com/laravel/framework/pull/58639)
- \[12.x] Support `afterSending` method on notification by [@​gdebrauwer](https://github.com/gdebrauwer) in [#​58654](https://github.com/laravel/framework/pull/58654)
- \[12.x] Allow Stringable::deduplicate() to accept array of characters by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​58649](https://github.com/laravel/framework/pull/58649)
- Update regex for trans\_choice to allow negative ranges by [@​hmazter](https://github.com/hmazter) in [#​58648](https://github.com/laravel/framework/pull/58648)
- Added timeout method to query builder for MySQL by [@​Vladelis](https://github.com/Vladelis) in [#​58644](https://github.com/laravel/framework/pull/58644)
- \[12.x] Add `assertJobs` method on `PendingBatchFake` by [@​gdebrauwer](https://github.com/gdebrauwer) in [#​58606](https://github.com/laravel/framework/pull/58606)
- \[12.x] Fix batch counts when deleteWhenMissingModels skips missing model jobs by [@​yankewei](https://github.com/yankewei) in [#​58541](https://github.com/laravel/framework/pull/58541)
- \[12.x] Fix Postgres sequence starting value for custom schemas/connections by [@​joteejotee](https://github.com/joteejotee) in [#​58199](https://github.com/laravel/framework/pull/58199)
- \[12.x] Add `whenFails` and `whenPasses` methods on `Validator` by [@​gdebrauwer](https://github.com/gdebrauwer) in [#​58655](https://github.com/laravel/framework/pull/58655)
- \[12.x] Bus::assertBatched() with array by [@​gdebrauwer](https://github.com/gdebrauwer) in [#​58659](https://github.com/laravel/framework/pull/58659)
- \[12.x] Refactor: improve doc block by [@​alipowerful7](https://github.com/alipowerful7) in [#​58677](https://github.com/laravel/framework/pull/58677)
- \[12.x] Add withoutHeader() method to Response by [@​miladev95](https://github.com/miladev95) in [#​58671](https://github.com/laravel/framework/pull/58671)
- \[12.x] Add integer array key support in phpdocs by [@​dluague](https://github.com/dluague) in [#​58668](https://github.com/laravel/framework/pull/58668)
- `Illuminate\Console\Parser` typehint fix. by [@​LastDragon-ru](https://github.com/LastDragon-ru) in [#​58670](https://github.com/laravel/framework/pull/58670)
- fix: replace substr with mb\_substr for user agent encoding by [@​jonagoldman](https://github.com/jonagoldman) in [#​58703](https://github.com/laravel/framework/pull/58703)
- chore: fix the Laravel ASCII SVG so that its characters perfectly align to columns by [@​markjaquith](https://github.com/markjaquith) in [#​58702](https://github.com/laravel/framework/pull/58702)
- \[12.x] Allow retrieving all view data via viewData() in TestResponse by [@​shane-zeng](https://github.com/shane-zeng) in [#​58700](https://github.com/laravel/framework/pull/58700)
- Exception page: fix pop in for non main frames by [@​martinpl](https://github.com/martinpl) in [#​58698](https://github.com/laravel/framework/pull/58698)
- \[12.x] Add missing [@​throws](https://github.com/throws) annotations to validation rules and JsonResponse by [@​QDenka](https://github.com/QDenka) in [#​58697](https://github.com/laravel/framework/pull/58697)
- \[12.x] Add conditional return type hint for Route::middleware() method. by [@​marcreichel](https://github.com/marcreichel) in [#​58699](https://github.com/laravel/framework/pull/58699)
- \[12.x] Improved type hints for when() helper function. by [@​marcreichel](https://github.com/marcreichel) in [#​58696](https://github.com/laravel/framework/pull/58696)
- \[12.x] Support Eloquent builders and relations as subqueries to update queries by [@​axlon](https://github.com/axlon) in [#​58692](https://github.com/laravel/framework/pull/58692)
- Add cache prefix isolation for parallel testing ([#​57584](https://github.com/laravel/framework/issues/57584)) by [@​HeathNaylor](https://github.com/HeathNaylor) in [#​58691](https://github.com/laravel/framework/pull/58691)
- Fix whereBetween to accept DatePeriod and handle missing end dates ([#​58092](https://github.com/laravel/framework/issues/58092)) by [@​HeathNaylor](https://github.com/HeathNaylor) in [#​58687](https://github.com/laravel/framework/pull/58687)
- Fix Str::isUrl() returning false for single-char domain names ([#​58538](https://github.com/laravel/framework/issues/58538)) by [@​HeathNaylor](https://github.com/HeathNaylor) in [#​58686](https://github.com/laravel/framework/pull/58686)
- Fix HTTP client response type hints for IDE compatibility ([#​58555](https://github.com/laravel/framework/issues/58555)) by [@​HeathNaylor](https://github.com/HeathNaylor) in [#​58684](https://github.com/laravel/framework/pull/58684)
- Fix types for ConfirmableTrait::confirmToProceed by [@​rolfvandekrol](https://github.com/rolfvandekrol) in [#​58681](https://github.com/laravel/framework/pull/58681)
- \[12.x] Refactor: simplify return with `??` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58679](https://github.com/laravel/framework/pull/58679)
- \[12.x] Refactor: replace `header` / `headers` with standardized `header(s)` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58678](https://github.com/laravel/framework/pull/58678)
- Add SSL cert/key support to MySQL schema dump and load ([#​57821](https://github.com/laravel/framework/issues/57821)) by [@​HeathNaylor](https://github.com/HeathNaylor) in [#​58690](https://github.com/laravel/framework/pull/58690)
- Allow specifying Redis connection on Redis-based queue middleware by [@​markieo1](https://github.com/markieo1) in [#​58656](https://github.com/laravel/framework/pull/58656)
- \[12.x] Use JS to create the Laravel ASCII SVG logo on the fly by [@​markjaquith](https://github.com/markjaquith) in [#​58719](https://github.com/laravel/framework/pull/58719)
- \[12.x] Feat: add `orderByPivotDesc()` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58720](https://github.com/laravel/framework/pull/58720)
- \[12.x] Refactor: add `@throws \InvalidArgumentException` to doc blocks by [@​alipowerful7](https://github.com/alipowerful7) in [#​58714](https://github.com/laravel/framework/pull/58714)
- \[12.x] Restore original dispatcher bindings after precognitive request by [@​pindab0ter](https://github.com/pindab0ter) in [#​58716](https://github.com/laravel/framework/pull/58716)
- \[12.x] Ensure throwIfStatus / throwUnlessStatus work for all status codes by [@​jackbayliss](https://github.com/jackbayliss) in [#​58724](https://github.com/laravel/framework/pull/58724)
- Fix Queue::fake() not releasing unique job locks between tests ([#​58533](https://github.com/laravel/framework/issues/58533)) by [@​HeathNaylor](https://github.com/HeathNaylor) in [#​58718](https://github.com/laravel/framework/pull/58718)
- \[12.x] Refactor: add `_` to more readability digit by [@​alipowerful7](https://github.com/alipowerful7) in [#​58738](https://github.com/laravel/framework/pull/58738)
- \[12.x] Refactor: Clean up unused $config parameters in ConcurrencyManager by [@​alizadeh7091](https://github.com/alizadeh7091) in [#​58739](https://github.com/laravel/framework/pull/58739)
- \[12.x] Refactor: use `Dumpable` by [@​alipowerful7](https://github.com/alipowerful7) in [#​58743](https://github.com/laravel/framework/pull/58743)
- \[12.x] Update forever cookie factory docblock to reflect 400-day duration by [@​jackbayliss](https://github.com/jackbayliss) in [#​58744](https://github.com/laravel/framework/pull/58744)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44Ni4xIiwidXBkYXRlZEluVmVyIjoiNDMuMTEwLjE2IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: composer.lock
Command failed: composer update laravel/framework:13.4.0 --with-dependencies --ignore-platform-req=ext-* --ignore-platform-req=lib-* --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins --minimal-changes
Loading composer repositories with package information
Dependency ramsey/uuid is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires laravel/framework ^13.0 -> satisfiable by laravel/framework[v13.4.0].
- nunomaduro/collision is locked to version v8.8.3 and an update of this package was not requested.
- nunomaduro/collision v8.8.3 conflicts with laravel/framework v13.4.0.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
### ⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
##### File name: composer.lock
```
Command failed: composer update laravel/framework:13.4.0 --with-dependencies --ignore-platform-req=ext-* --ignore-platform-req=lib-* --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins --minimal-changes
Loading composer repositories with package information
Dependency ramsey/uuid is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires laravel/framework ^13.0 -> satisfiable by laravel/framework[v13.4.0].
- nunomaduro/collision is locked to version v8.8.3 and an update of this package was not requested.
- nunomaduro/collision v8.8.3 conflicts with laravel/framework v13.4.0.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
```
renovate_bot
changed title from [renovate-composer]: upgrade laravel/framework - 12.50.0 → 13.4.0 to [renovate-composer]: upgrade laravel/framework - 12.50.0 → 13.4.0 - autoclosed2026-04-14 16:13:58 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
^12.0→^13.0Release Notes
laravel/framework (laravel/framework)
v13.4.0Compare Source
Illuminate\Queue\Attributes\Delayattribute by @fadez in #59504$request->interval()failing with very small float values by @SanderMuller in #59502overflowoption to Carbon plus and minus by @lucasmichot in #59509#[WithoutRelations]queue attribute not being inherited by child classes by @stevebauman in #59568v13.3.0Compare Source
Arr::whereNotNull()docs by @axlon in #59411->file()method to$request->safe()by @SanderMuller in #59396new Collection()overcollect()helper by @browner12 in #59453array_flip()calls by @browner12 in #59452UnitTesttest attribute by @cosmastech in #59432isset()overin_array()for better performance by @browner12 in #59457postinstallininstall:broadcastingcommand by @duncanmcclean in #59485v13.2.0Compare Source
#[Queue]and#[Connection]by @innocenzi in #59278schedule:listdisplay expression in the correct timezone by @xiCO2k in #59286v13.1.1Compare Source
v13.1.0Compare Source
v13.0.0Compare Source
Responsemethodsthrow()andthrowIf()by @cosmastech in #54798Blueprint:datetime=>dateTimeby @TheJoeSchr in #55859Cache::touch()&Store::touch()for TTL Extension by @yitzwillroth in #55954countBydocblock inEnumerableinterface to allow for enum callback by @jnoordsij in #56897add()method deprecation by @KIKOmanasijev in #56488Strfactories when tearing down test case by @cosmastech in #57296PendingRequest@pool()to use 2 for concurrency by @cosmastech in #57972Symfony\Component\HttpFoundation\Request::get()functionality to avoid breaking changes. by @crynobone in #58081ApplicationBuilder::withScheduling()by @crynobone in #58160ModelInspectorto makeshow:modelmore flexible by @cosmastech in #58230Enumerableinterface docblock types by @jnoordsij in #58181Jssupport class by default by @jnoordsij in #58471symfony/processby @crynobone in #58548illuminate/json-schemadependencies by @crynobone in #58612hasSoleandhasManyto theEnumerableinterface by @JosephSilber in #58610symfony/console8 by @crynobone in #58629ccto Mailer contract by @jackbayliss in #58667markEmailAsUnverifiedtoMustVerifyEmailinterface by @amirhshokri in #58701route:listoutput by @jackbayliss in #58889DeleteWhenMissingModelsattribute on queued notifications by @calebdw in #58908composer.jsonby @crynobone in #58975flushLocks()support to Cache stores by @amirhshokri in #58907flushLocks()events by @amirhshokri in #59006symfony/translationdeps by @crynobone in #59054laravel/serializable-closurev1 by @crynobone in #59053pda/pheanstalk8.0+ and remove 5.x by @crynobone in #59072BelongsToManyby @SanderMuller in #59153brick/math0.16 by @balu-lt in #59165tapPendingRequest by @cosmastech in #59188touch()to accept multiple columns by @devajmeireles in #59175Command::withProgressBarphpdoc to account for arrow functions and non-void return types by @billypoke in #58766HasOneOrManyThroughby @Jacobs63 in #59231Util::getParameterClassName()call in container resolution by @SanderMuller in #59220array_pushwith spread operator inMessageBag::all()by @SanderMuller in #59217route:listby @devajmeireles in #59237v12.56.0Compare Source
schedule:listdisplay expression in the correct timezone by @xiCO2k in #59307v12.55.1Compare Source
v12.55.0Compare Source
BelongsToManyby @SanderMuller in #59153tapPendingRequest by @cosmastech in #59188touch()to accept multiple columns by @devajmeireles in #59175Command::withProgressBarphpdoc to account for arrow functions and non-void return types by @billypoke in #58766HasOneOrManyThroughby @Jacobs63 in #59231Util::getParameterClassName()call in container resolution by @SanderMuller in #59220array_pushwith spread operator inMessageBag::all()by @SanderMuller in #59217route:listby @devajmeireles in #59237v12.54.1Compare Source
v12.54.0Compare Source
repeatEvery()method by @amirhshokri in #58987BinaryFileResponseby @axlon in #59018int-mask-ofannotation by @shaedrich in #59082interval()method toInteractsWithDataby @SanderMuller in #59114for()method by @amirhshokri in #59144v12.53.0Compare Source
buildMorphMapFromModels()function by @josephkerkhof in #58891PhpRedisClusterConnectionflushdb method by @miladev95 in #58917downcommand to refresh maintenance mode options by @alies-dev in #58918matchexpression by @josephkerkhof in #58928convertValuesToBooleanto usematchfor cleaner logic by @josephkerkhof in #58927Eventmacros to be applied to schedule groups by @stevebauman in #58926assertSessionHasAllfailure output by @dxnter in #58946Cache::funnel()for concurrency limiting with any cache driver by @mathiasgrimm in #58439oldest_pendingis displayed inqueue:monitorby @jackbayliss in #58952SerializerandTypeclasses inIlluminate/JsonSchemaby @mrvipchien in #58981v12.52.0Compare Source
@returnin doc blocks by @alipowerful7 in #58746Arr::wrap()and addCollection::wrap()by @alipowerful7 in #58748temporaryUploadUrlto thelocalfilesystem by @mnapoli in #58499Batch::progress()return value tointby @zjbarg in #58767AbstractRouteCollectionby @jackbayliss in #58769@returnforresolveResourceRelationshipIdentifiers()by @alipowerful7 in #58764Mailable::later()does not set delay onSendQueuedMailableinstance by @amirhshokri in #58765enum_value()helper for environment value extraction by @alipowerful7 in #58785new Collection()by @alipowerful7 in #58793makeManymethod to Factory by @jackbayliss in #58795withoutAfterMaking()andwithoutAfterCreating()factory helpers by @ziadoz in #58794|arrayin doc block by @alipowerful7 in #58805\BackedEnumby @alipowerful7 in #58807JSON decodedby @alipowerful7 in #58830@throwstag in dock block by @alipowerful7 in #58829matchexpression by @alipowerful7 in #58824compileSelectmethod return by @amirhshokri in #58821\BackedEnumby @alipowerful7 in #58818JSON decodedtodecoded JSONby @alipowerful7 in #58849composer.jsonby @amirhshokri in #58875forgetDriver()from TestCaches by @jackbayliss in #58878v12.51.0Compare Source
Lang::get()when locale matches fallback by @jackbayliss in #58626reloadtasks to includeschedule:interruptionby @adevade in #58637firstOrCreateandcreateOrFirstby @gcavanunez in #58639afterSendingmethod on notification by @gdebrauwer in #58654assertJobsmethod onPendingBatchFakeby @gdebrauwer in #58606whenFailsandwhenPassesmethods onValidatorby @gdebrauwer in #58655Illuminate\Console\Parsertypehint fix. by @LastDragon-ru in #58670??by @alipowerful7 in #58679header/headerswith standardizedheader(s)by @alipowerful7 in #58678orderByPivotDesc()by @alipowerful7 in #58720@throws \InvalidArgumentExceptionto doc blocks by @alipowerful7 in #58714_to more readability digit by @alipowerful7 in #58738Dumpableby @alipowerful7 in #58743Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.
⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below:
File name: composer.lock
[renovate-composer]: upgrade laravel/framework - 12.50.0 → 13.4.0to [renovate-composer]: upgrade laravel/framework - 12.50.0 → 13.4.0 - autoclosedPull request closed