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.14.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v13140---2026-06-04)
[Compare Source](https://github.com/laravel/framework/compare/v13.13.0...v13.14.0)
- \[13.x] Register the lazy refresh hook on all connections by [@​tontonsb](https://github.com/tontonsb) in [#​60359](https://github.com/laravel/framework/pull/60359)
- \[13.x] Cache falsy JSON payloads in HTTP client responses by [@​Button99](https://github.com/Button99) in [#​60357](https://github.com/laravel/framework/pull/60357)
- GitHub Actions hardening by [@​nunomaduro](https://github.com/nunomaduro) in [#​60363](https://github.com/laravel/framework/pull/60363)
- Bump the github-actions group with 4 updates by [@​dependabot](https://github.com/dependabot)\[bot] in [#​60364](https://github.com/laravel/framework/pull/60364)
- \[13.x] Fix `Request::createFromBase()` compatibility with Symfony 8.1 by [@​irabbi360](https://github.com/irabbi360) in [#​60354](https://github.com/laravel/framework/pull/60354)
- \[13.x] Set default cooldown for GitHub Actions updates by [@​JurianArie](https://github.com/JurianArie) in [#​60368](https://github.com/laravel/framework/pull/60368)
- \[13.x] Fix `Message::embed` data attachment handling by [@​miladev95](https://github.com/miladev95) in [#​60361](https://github.com/laravel/framework/pull/60361)
- \[13.x] Namespace the cloud logging formatter by [@​timacdonald](https://github.com/timacdonald) in [#​60362](https://github.com/laravel/framework/pull/60362)
- Grant contents: read to pull requests workflow by [@​nunomaduro](https://github.com/nunomaduro) in [#​60370](https://github.com/laravel/framework/pull/60370)
- \[13.x] Respect child queue properties over inherited attributes by [@​mattiasgeniar](https://github.com/mattiasgeniar) in [#​60369](https://github.com/laravel/framework/pull/60369)
- Grant contents: read and pull-requests: write to issues workflow by [@​nunomaduro](https://github.com/nunomaduro) in [#​60371](https://github.com/laravel/framework/pull/60371)
- Use least-privilege permissions for pull requests and issues workflows by [@​nunomaduro](https://github.com/nunomaduro) in [#​60372](https://github.com/laravel/framework/pull/60372)
- Pin pull requests and issues workflows to latest laravel/.github by [@​nunomaduro](https://github.com/nunomaduro) in [#​60373](https://github.com/laravel/framework/pull/60373)
- Enable Dependabot auto-merge by [@​nunomaduro](https://github.com/nunomaduro) in [#​60383](https://github.com/laravel/framework/pull/60383)
- \[13.x] Foundation\Cloud\Events: remove an unused import and fix docblock by [@​oliverquynh](https://github.com/oliverquynh) in [#​60378](https://github.com/laravel/framework/pull/60378)
- \[13.x] Fix StartSession docblock by [@​oliverquynh](https://github.com/oliverquynh) in [#​60375](https://github.com/laravel/framework/pull/60375)
- \[13.x] Add JSON Schema array deserializer by [@​pushpak1300](https://github.com/pushpak1300) in [#​60384](https://github.com/laravel/framework/pull/60384)
- \[13.x] Add queue to InspectedJob by [@​jackbayliss](https://github.com/jackbayliss) in [#​60374](https://github.com/laravel/framework/pull/60374)
- \[13.x] Fix treatment of null headers by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​60386](https://github.com/laravel/framework/pull/60386)
- \[13.x] Add units to DebounceFor by [@​jackbayliss](https://github.com/jackbayliss) in [#​60388](https://github.com/laravel/framework/pull/60388)
### [`v13.13.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v13130---2026-06-02)
[Compare Source](https://github.com/laravel/framework/compare/v13.12.0...v13.13.0)
- \[13.x] Add stan ignore for MySqlSchemaState by [@​jackbayliss](https://github.com/jackbayliss) in [#​60284](https://github.com/laravel/framework/pull/60284)
- \[13.x] Add attachFromStorage helpers to notification MailMessage by [@​LucasCavalheri](https://github.com/LucasCavalheri) in [#​60268](https://github.com/laravel/framework/pull/60268)
- \[13.x] Allow Http Client to be used as PSR Client by [@​willrowe](https://github.com/willrowe) in [#​60295](https://github.com/laravel/framework/pull/60295)
- \[13.x] Normalize HTTP client header values by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​60292](https://github.com/laravel/framework/pull/60292)
- \[13.x] Report MultipleRecordsFoundException from sole() by [@​PeteBishwhip](https://github.com/PeteBishwhip) in [#​60294](https://github.com/laravel/framework/pull/60294)
- \[13.x] Hint unit in `UniqueFor` by [@​cosmastech](https://github.com/cosmastech) in [#​60289](https://github.com/laravel/framework/pull/60289)
- \[13.x] Fix inverted ratio comparison operators in image dimension validation by [@​Button99](https://github.com/Button99) in [#​60290](https://github.com/laravel/framework/pull/60290)
- \[13.x] Allow scheduler to opt out of pause and interrupt cache checks by [@​jackbayliss](https://github.com/jackbayliss) in [#​60226](https://github.com/laravel/framework/pull/60226)
- \[13.x] Enhance Cache attribute to support memoization by [@​jenky](https://github.com/jenky) in [#​60309](https://github.com/laravel/framework/pull/60309)
- \[13.x] Indicate an event was skipped by [@​cosmastech](https://github.com/cosmastech) in [#​60311](https://github.com/laravel/framework/pull/60311)
- \[13.x] Fix `Illuminate\Http\Response` compatibility against Symfony 8.1 by [@​crynobone](https://github.com/crynobone) in [#​60318](https://github.com/laravel/framework/pull/60318)
- fix: fix isUniqueConstraintError to catch SQL Server error 2627 by [@​ErfanMomeniii](https://github.com/ErfanMomeniii) in [#​60320](https://github.com/laravel/framework/pull/60320)
- \[13.x] Fix FIFO queue name normalization in Cloud managed queues by [@​kieranbrown](https://github.com/kieranbrown) in [#​60315](https://github.com/laravel/framework/pull/60315)
- fix: `whereDate` and `whereTime` crash when $column is an `Expression` by [@​ahawlitschek](https://github.com/ahawlitschek) in [#​60314](https://github.com/laravel/framework/pull/60314)
- \[13.x] Introduce Bus::bulk() by [@​jackbayliss](https://github.com/jackbayliss) in [#​60297](https://github.com/laravel/framework/pull/60297)
- \[13.x] Fix time-sensitive flaky test in NotificationDatabaseChannelTest by [@​KentarouTakeda](https://github.com/KentarouTakeda) in [#​60333](https://github.com/laravel/framework/pull/60333)
- fix: Add content\_id to inline attachment handling in CloudflareTransport by [@​pablo-gonzalez-helpwan](https://github.com/pablo-gonzalez-helpwan) in [#​60330](https://github.com/laravel/framework/pull/60330)
- \[13.x] Add payload to InspectedJob by [@​jackbayliss](https://github.com/jackbayliss) in [#​60326](https://github.com/laravel/framework/pull/60326)
- Added MariaDB vector index capability by [@​michielvaneerd](https://github.com/michielvaneerd) in [#​60334](https://github.com/laravel/framework/pull/60334)
- Fix [@​theme](https://github.com/theme) directive collision in health check view by [@​cathrinevaage](https://github.com/cathrinevaage) in [#​60340](https://github.com/laravel/framework/pull/60340)
- \[13.x] Remove unused variables from tests by [@​oliverquynh](https://github.com/oliverquynh) in [#​60338](https://github.com/laravel/framework/pull/60338)
- \[13.x] fix: Queue and Connection attributes in Mailable::queue() and later() by [@​irabbi360](https://github.com/irabbi360) in [#​60328](https://github.com/laravel/framework/pull/60328)
- \[13.x] Fix ValidationImageFileRuleTest by [@​jackbayliss](https://github.com/jackbayliss) in [#​60348](https://github.com/laravel/framework/pull/60348)
- \[13.x] `schedule:pause` command should error when its disabled by [@​jackbayliss](https://github.com/jackbayliss) in [#​60347](https://github.com/laravel/framework/pull/60347)
### [`v13.12.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v13120---2026-05-26)
[Compare Source](https://github.com/laravel/framework/compare/v13.11.2...v13.12.0)
- \[13.x] Accept Symfony's new control-characters exception message in mailer test by [@​kieranbrown](https://github.com/kieranbrown) in [#​60202](https://github.com/laravel/framework/pull/60202)
- \[13.x] Ability to opt out of worker restart on lost connection by [@​jackbayliss](https://github.com/jackbayliss) in [#​60201](https://github.com/laravel/framework/pull/60201)
- \[13.x] Resolve scheduled event callback parameter by type rather than name by [@​kayw-geek](https://github.com/kayw-geek) in [#​60197](https://github.com/laravel/framework/pull/60197)
- \[13.x] default clear() queue driver param to null by [@​jackbayliss](https://github.com/jackbayliss) in [#​60192](https://github.com/laravel/framework/pull/60192)
- \[13.x] Fix path separator being encoded for LocalFilesystemAdapter by [@​jackbayliss](https://github.com/jackbayliss) in [#​60194](https://github.com/laravel/framework/pull/60194)
- \[13.x] feat: add factory to pivot stub by [@​ludo237](https://github.com/ludo237) in [#​60204](https://github.com/laravel/framework/pull/60204)
- \[13.x] Fix incorrect type hint in Optional::offsetUnset() docblock by [@​rpsohag](https://github.com/rpsohag) in [#​60207](https://github.com/laravel/framework/pull/60207)
- \[13.x] Make ClearCommand prohibitable by [@​jackbayliss](https://github.com/jackbayliss) in [#​60215](https://github.com/laravel/framework/pull/60215)
- \[13.x] Allow auto discovered listeners to opt out of discovery by [@​jackbayliss](https://github.com/jackbayliss) in [#​60209](https://github.com/laravel/framework/pull/60209)
- \[13.x] Ensure Up/Down commands report exceptions by [@​jackbayliss](https://github.com/jackbayliss) in [#​60232](https://github.com/laravel/framework/pull/60232)
- \[13.x] Fix path separator encoding in temporaryUrl on local disk by [@​kayw-geek](https://github.com/kayw-geek) in [#​60230](https://github.com/laravel/framework/pull/60230)
- \[13.x] Add assertJsonPathsCanonicalizing to TestResponse by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​60225](https://github.com/laravel/framework/pull/60225)
- \[13.x] Add `normalize` parameter to `Str::studly()` and `Str::pascal()` by [@​hotmeteor](https://github.com/hotmeteor) in [#​60229](https://github.com/laravel/framework/pull/60229)
- \[13.x] Fix async HTTP retries when using array backoff values by [@​LucasCavalheri](https://github.com/LucasCavalheri) in [#​60214](https://github.com/laravel/framework/pull/60214)
- \[13.x] Replace compact with explicit arrays by [@​parkourben99](https://github.com/parkourben99) in [#​60234](https://github.com/laravel/framework/pull/60234)
- \[13.x] Add prohibited to KeyGenerateCommand by [@​jackbayliss](https://github.com/jackbayliss) in [#​60224](https://github.com/laravel/framework/pull/60224)
- \[13.x] remove last `compact()` call by [@​browner12](https://github.com/browner12) in [#​60235](https://github.com/laravel/framework/pull/60235)
- \[13.x] Allow JsonSchema fluent boolean flags to be unset by [@​LucasCavalheri](https://github.com/LucasCavalheri) in [#​60239](https://github.com/laravel/framework/pull/60239)
- \[13.x] battle harden when scheme is present in the config by [@​DGarbs51](https://github.com/DGarbs51) in [#​60237](https://github.com/laravel/framework/pull/60237)
- \[13.x] Rector : Always convert `compact()` to variables by [@​lucasmichot](https://github.com/lucasmichot) in [#​60236](https://github.com/laravel/framework/pull/60236)
- \[13.x] Add attributes to Scheduler by [@​cosmastech](https://github.com/cosmastech) in [#​60255](https://github.com/laravel/framework/pull/60255)
- \[13.x] Guard base\_path() call in SQLiteConnector for standalone usage by [@​YoussefMansour9](https://github.com/YoussefMansour9) in [#​60266](https://github.com/laravel/framework/pull/60266)
- \[13.x] Fix incorrect [@​return](https://github.com/return) types in Number::spell(), ordinal(), and spellOrdinal() by [@​AmdadulShakib](https://github.com/AmdadulShakib) in [#​60263](https://github.com/laravel/framework/pull/60263)
- \[13.x] Supports using URI-based connection for SQLite using `file:` prefix by [@​crynobone](https://github.com/crynobone) in [#​60261](https://github.com/laravel/framework/pull/60261)
- \[13.x] Add `Client\Request::uri()` by [@​stevebauman](https://github.com/stevebauman) in [#​60282](https://github.com/laravel/framework/pull/60282)
- \[13.x] View\Factory::flushComponents() doesn't reset $slots / $slotStack by [@​martinsoenen](https://github.com/martinsoenen) in [#​60283](https://github.com/laravel/framework/pull/60283)
- \[13.x] Throw ManagedQueueNotFoundException when a managed queue is missing by [@​kieranbrown](https://github.com/kieranbrown) in [#​60275](https://github.com/laravel/framework/pull/60275)
### [`v13.11.2`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v13112---2026-05-20)
[Compare Source](https://github.com/laravel/framework/compare/v13.11.1...v13.11.2)
- \[13.x] Fix lifecycle deferred event methods by [@​cosmastech](https://github.com/cosmastech) in [#​60190](https://github.com/laravel/framework/pull/60190)
- \[13.x] Boot managed queues before service providers boot by [@​kieranbrown](https://github.com/kieranbrown) in [#​60198](https://github.com/laravel/framework/pull/60198)
### [`v13.11.1`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v13111---2026-05-19)
[Compare Source](https://github.com/laravel/framework/compare/v13.11.0...v13.11.1)
- Normalize Windows env variable comparison in ServeCommand by [@​wangchenxudev](https://github.com/wangchenxudev) in [#​60183](https://github.com/laravel/framework/pull/60183)
- \[13.x] Rename X-Request-ID header to Cloud-Request-ID by [@​kieranbrown](https://github.com/kieranbrown) in [#​60188](https://github.com/laravel/framework/pull/60188)
### [`v13.11.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v13110---2026-05-19)
[Compare Source](https://github.com/laravel/framework/compare/v13.10.0...v13.11.0)
- \[13.x] Dedicated Cloud Queue by [@​kieranbrown](https://github.com/kieranbrown) in [#​60180](https://github.com/laravel/framework/pull/60180)
### [`v13.10.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v13100---2026-05-19)
[Compare Source](https://github.com/laravel/framework/compare/v13.9.0...v13.10.0)
- \[13.x] Improve queue metric tests by [@​timacdonald](https://github.com/timacdonald) in [#​60124](https://github.com/laravel/framework/pull/60124)
- \[13.x] Add tests for SeeInHtml constraint covering unicode whitespace by [@​scabarcas17](https://github.com/scabarcas17) in [#​60128](https://github.com/laravel/framework/pull/60128)
- \[13.x] Fix starts\_with/ends\_with rules rejecting numeric values by [@​aydinfatih](https://github.com/aydinfatih) in [#​60120](https://github.com/laravel/framework/pull/60120)
- Fix typo in docblock for listManagementOptions method in SesV2Transport by [@​daliendev](https://github.com/daliendev) in [#​60115](https://github.com/laravel/framework/pull/60115)
- \[13.x] Fix typo in mergeAttributeFromCachedCasts() PHPDoc comment by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​60112](https://github.com/laravel/framework/pull/60112)
- \[13.x] Optimize Worker queue pause check by [@​jackbayliss](https://github.com/jackbayliss) in [#​60109](https://github.com/laravel/framework/pull/60109)
- \[13.x] Fix typo in preg\_replace\_array() PHPDoc comment by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​60111](https://github.com/laravel/framework/pull/60111)
- Add storage store by [@​taylorotwell](https://github.com/taylorotwell) in [#​60131](https://github.com/laravel/framework/pull/60131)
- Fix typo in Builder::getRelation() comment by [@​rpsohag](https://github.com/rpsohag) in [#​60130](https://github.com/laravel/framework/pull/60130)
- URL Encode Paths by [@​taylorotwell](https://github.com/taylorotwell) in [#​60137](https://github.com/laravel/framework/pull/60137)
- \[13.x] Add WorkerIdle event by [@​jackbayliss](https://github.com/jackbayliss) in [#​60134](https://github.com/laravel/framework/pull/60134)
- \[13.x] Replace [@​return](https://github.com/return) with [@​var](https://github.com/var) on docblocks for properties in tests by [@​scabarcas17](https://github.com/scabarcas17) in [#​60132](https://github.com/laravel/framework/pull/60132)
- \[13.x] Pass WorkerOptions to Pausing/Resuming/Interrupted by [@​jackbayliss](https://github.com/jackbayliss) in [#​60135](https://github.com/laravel/framework/pull/60135)
- \[13.x] Switch force check in Worker by [@​jackbayliss](https://github.com/jackbayliss) in [#​60145](https://github.com/laravel/framework/pull/60145)
- \[13.x] Skip delimiter filesystem tests on Windows by [@​jackbayliss](https://github.com/jackbayliss) in [#​60143](https://github.com/laravel/framework/pull/60143)
- Delimit aggregate alias by [@​willrowe](https://github.com/willrowe) in [#​60140](https://github.com/laravel/framework/pull/60140)
- \[13.x] Allow lifecycle and output callbacks on Schedule::group() by [@​cosmastech](https://github.com/cosmastech) in [#​60133](https://github.com/laravel/framework/pull/60133)
- \[13.x] Allow passing scheduled `Event` in callbacks by [@​cosmastech](https://github.com/cosmastech) in [#​60144](https://github.com/laravel/framework/pull/60144)
- Validate against line breaks in emails by [@​taylorotwell](https://github.com/taylorotwell) in [#​60151](https://github.com/laravel/framework/pull/60151)
- \[13.x] Add `assertPushedOnce()` by [@​weshooper](https://github.com/weshooper) in [#​60150](https://github.com/laravel/framework/pull/60150)
- \[13.x] Fix callable usage in `Event@callEventCallback()` by [@​cosmastech](https://github.com/cosmastech) in [#​60148](https://github.com/laravel/framework/pull/60148)
- \[13.x] Fix numeric property names being cast to integers in JsonSchema requi… by [@​irabbi360](https://github.com/irabbi360) in [#​60149](https://github.com/laravel/framework/pull/60149)
- \[13.x] Pass worker options to Looping by [@​jackbayliss](https://github.com/jackbayliss) in [#​60153](https://github.com/laravel/framework/pull/60153)
- \[13.x] Support enum queue names in QueueFake by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​60161](https://github.com/laravel/framework/pull/60161)
- \[13.x] Remove obsolete [@​phpstan-ignore](https://github.com/phpstan-ignore) clauses by [@​jnoordsij](https://github.com/jnoordsij) in [#​60164](https://github.com/laravel/framework/pull/60164)
- \[13.x] Consistent test OS attributes by [@​jnoordsij](https://github.com/jnoordsij) in [#​60162](https://github.com/laravel/framework/pull/60162)
- Output cloud request ID in logs by [@​jradtilbrook](https://github.com/jradtilbrook) in [#​60156](https://github.com/laravel/framework/pull/60156)
- \[13.x] Optionally flush the SQS overflow store on queue:clear by [@​Orrison](https://github.com/Orrison) in [#​60138](https://github.com/laravel/framework/pull/60138)
- \[13.x] Add JSON output option to ListFailedCommand and corresponding tests by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​60168](https://github.com/laravel/framework/pull/60168)
- \[13.x] Add schema foreign key existence helper by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​60169](https://github.com/laravel/framework/pull/60169)
- Stop when empty for by [@​taylorotwell](https://github.com/taylorotwell) in [#​60176](https://github.com/laravel/framework/pull/60176)
- \[13.x] Add initial value type to return of `reduce` and `reduceWithKeys` by [@​jnoordsij](https://github.com/jnoordsij) in [#​60178](https://github.com/laravel/framework/pull/60178)
- \[13.x] Fix incorrect type hint in EncodedHtmlString::convert() docblock by [@​rpsohag](https://github.com/rpsohag) in [#​60186](https://github.com/laravel/framework/pull/60186)
### [`v13.9.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1390---2026-05-13)
[Compare Source](https://github.com/laravel/framework/compare/v13.8.0...v13.9.0)
- \[13.x] Fix issue using custom aws credential providers by [@​iWader](https://github.com/iWader) in [#​60000](https://github.com/laravel/framework/pull/60000)
- \[13.x] Revert "Correct Factory::configure [@​return](https://github.com/return) to $this ([#​59963](https://github.com/laravel/framework/issues/59963))" by [@​jnoordsij](https://github.com/jnoordsij) in [#​60004](https://github.com/laravel/framework/pull/60004)
- \[13.x] Replace `mb_split` with `preg_split` by [@​jnoordsij](https://github.com/jnoordsij) in [#​60012](https://github.com/laravel/framework/pull/60012)
- \[13.x] Keep calls to implode() consistent by [@​lucasmichot](https://github.com/lucasmichot) in [#​60013](https://github.com/laravel/framework/pull/60013)
- \[13.x] update `rand()` to `mt_rand()` by [@​browner12](https://github.com/browner12) in [#​60018](https://github.com/laravel/framework/pull/60018)
- \[13.x] remove `mt_srand()` deprecated "mode" argument by [@​browner12](https://github.com/browner12) in [#​60020](https://github.com/laravel/framework/pull/60020)
- \[13.x] Remove useless `fail-fast` option by [@​lucasmichot](https://github.com/lucasmichot) in [#​60019](https://github.com/laravel/framework/pull/60019)
- \[13.x] Prefer spaceship operator when possible by [@​lucasmichot](https://github.com/lucasmichot) in [#​60015](https://github.com/laravel/framework/pull/60015)
- \[13.x] Fix incorrectly opened DocBlocks by [@​CasEbb](https://github.com/CasEbb) in [#​60014](https://github.com/laravel/framework/pull/60014)
- \[13.x] Ensure that the named arguments are sorted during a call by [@​lucasmichot](https://github.com/lucasmichot) in [#​60017](https://github.com/laravel/framework/pull/60017)
- \[13.x] Rely on guzzlehttp/psr7 for nested multipart array expansion - Fix [#​59992](https://github.com/laravel/framework/issues/59992) by [@​RomainMazB](https://github.com/RomainMazB) in [#​59984](https://github.com/laravel/framework/pull/59984)
- \[13.x] Add PreparesForDispatch interface for Jobs by [@​jackbayliss](https://github.com/jackbayliss) in [#​59879](https://github.com/laravel/framework/pull/59879)
- Add support to scoped filesystem for Cloud by [@​jeremynikolic](https://github.com/jeremynikolic) in [#​60030](https://github.com/laravel/framework/pull/60030)
- \[13.x] Unused `$parameters` in `validate*case()` by [@​weshooper](https://github.com/weshooper) in [#​60024](https://github.com/laravel/framework/pull/60024)
- \[13.x] Narrow attachment url scheme by [@​benbjurstrom](https://github.com/benbjurstrom) in [#​60034](https://github.com/laravel/framework/pull/60034)
- \[13.x] Skip allocation in mergeFillable/Appends/Hidden/Visible when input is empty by [@​olivier-zenchef](https://github.com/olivier-zenchef) in [#​60008](https://github.com/laravel/framework/pull/60008)
- add generic return types to `Builder` paginate methods by [@​levikl](https://github.com/levikl) in [#​60045](https://github.com/laravel/framework/pull/60045)
- \[13.x] Make PendingDispatch conditionable by [@​kevinb1989](https://github.com/kevinb1989) in [#​60047](https://github.com/laravel/framework/pull/60047)
- \[13.x] Display error in `queue:pause` when `Worker` isn't pausable by [@​weshooper](https://github.com/weshooper) in [#​60023](https://github.com/laravel/framework/pull/60023)
- \[13.x] Add tests for `Attachment::fromUrl()` URL scheme validation by [@​mdalikadar](https://github.com/mdalikadar) in [#​60054](https://github.com/laravel/framework/pull/60054)
- \[13.x] Fix [@​params](https://github.com/params) typo in toPrettyJson docblocks by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​60050](https://github.com/laravel/framework/pull/60050)
- \[13.x] re-add docblock for `apply()` method by [@​browner12](https://github.com/browner12) in [#​60055](https://github.com/laravel/framework/pull/60055)
- \[13.x] Add unicode modifier to preg\_split by [@​rodrigopedra](https://github.com/rodrigopedra) in [#​60056](https://github.com/laravel/framework/pull/60056)
- \[13.x] Add name to MigrationStarted/MigrationEnded events by [@​jackbayliss](https://github.com/jackbayliss) in [#​60059](https://github.com/laravel/framework/pull/60059)
- \[13.x] Ability to override the Worker timeout exit code by [@​jackbayliss](https://github.com/jackbayliss) in [#​60072](https://github.com/laravel/framework/pull/60072)
- \[13.x] Add method to convert a Password instance to a passwordrules string by [@​imliam](https://github.com/imliam) in [#​60070](https://github.com/laravel/framework/pull/60070)
- add index for database performance by [@​DGarbs51](https://github.com/DGarbs51) in [#​60073](https://github.com/laravel/framework/pull/60073)
- \[13.x] Add optional disk storage for large SQS queue payloads by [@​Orrison](https://github.com/Orrison) in [#​59734](https://github.com/laravel/framework/pull/59734)
- \[13.x] Cloud queue metrics by [@​timacdonald](https://github.com/timacdonald) in [#​60074](https://github.com/laravel/framework/pull/60074)
- \[13.x] reset Lottery on test case teardown by [@​cosmastech](https://github.com/cosmastech) in [#​60083](https://github.com/laravel/framework/pull/60083)
- \[13.x] Add support for `after_commit` for Cloud queue metrics by [@​timacdonald](https://github.com/timacdonald) in [#​60078](https://github.com/laravel/framework/pull/60078)
- \[13.x] Remove Composer `github-oauth` credentials on Linux & Windows Actions by [@​crynobone](https://github.com/crynobone) in [#​60095](https://github.com/laravel/framework/pull/60095)
- Revert "\[13.x] Remove Composer `github-oauth` credentials on Linux & Windows Actions" by [@​crynobone](https://github.com/crynobone) in [#​60100](https://github.com/laravel/framework/pull/60100)
- \[13.x] Support config caching with Cloud queues by [@​timacdonald](https://github.com/timacdonald) in [#​60094](https://github.com/laravel/framework/pull/60094)
- \[13.x] Support Concurrency Run Timeouts by [@​dbpolito](https://github.com/dbpolito) in [#​60105](https://github.com/laravel/framework/pull/60105)
- \[13.x] Allow passing a Closure to `ThrottlesExceptions` middleware by [@​cosmastech](https://github.com/cosmastech) in [#​60103](https://github.com/laravel/framework/pull/60103)
- \[13.x] Add enum support to contextual attribute binding by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​60092](https://github.com/laravel/framework/pull/60092)
- \[13.x] Add foreignUuidFor schema helper by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​60091](https://github.com/laravel/framework/pull/60091)
- \[13.x] Add unicode modifier to SeeInHtml normalize whitespace regex by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​60090](https://github.com/laravel/framework/pull/60090)
- \[13.x] Replace [@​return](https://github.com/return) with [@​var](https://github.com/var) on property docblocks by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​60087](https://github.com/laravel/framework/pull/60087)
- Fix grammatical error in Lottery::alwaysLose() PHPDoc comment by [@​rpsohag](https://github.com/rpsohag) in [#​60086](https://github.com/laravel/framework/pull/60086)
- Fix typo in Sleep::microsecond() PHPDoc comment by [@​rpsohag](https://github.com/rpsohag) in [#​60085](https://github.com/laravel/framework/pull/60085)
### [`v13.8.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1380---2026-05-05)
[Compare Source](https://github.com/laravel/framework/compare/v13.7.0...v13.8.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)
- Preserve types on partialMock() and spy() by [@​AJenbo](https://github.com/AJenbo) in [#​59384](https://github.com/laravel/framework/pull/59384)
- Fix missing UnitEnum support in ModelNotFoundException by [@​jtheuerkauf](https://github.com/jtheuerkauf) in [#​59423](https://github.com/laravel/framework/pull/59423)
- \[12.x] Fix macros with static closures by [@​FeBe95](https://github.com/FeBe95) in [#​59449](https://github.com/laravel/framework/pull/59449)
- Correct Storage::fake() return type by [@​AJenbo](https://github.com/AJenbo) in [#​59469](https://github.com/laravel/framework/pull/59469)
- \[12.x] Fix callable type for freezeTime, freezeSecond, and travelTo by [@​nbayramberdiyev](https://github.com/nbayramberdiyev) in [#​59466](https://github.com/laravel/framework/pull/59466)
- \[12.x] Support string abstract in mock/partialMock/spy PHPDoc by [@​kayw-geek](https://github.com/kayw-geek) in [#​59477](https://github.com/laravel/framework/pull/59477)
- Document thrown exceptions in FilesystemAdapter by [@​AJenbo](https://github.com/AJenbo) in [#​59534](https://github.com/laravel/framework/pull/59534)
- Hint \Redis `@mixin` on Connection by [@​AJenbo](https://github.com/AJenbo) in [#​59532](https://github.com/laravel/framework/pull/59532)
- \[12.x] Use PDO subclass polyfill by [@​jnoordsij](https://github.com/jnoordsij) in [#​59640](https://github.com/laravel/framework/pull/59640)
- \[12.x] Fix infinite rate limiter TTL on custom increments by [@​paulandroshchuk](https://github.com/paulandroshchuk) in [#​59693](https://github.com/laravel/framework/pull/59693)
- \[12.x] Support named credential providers for SQS queue connections by [@​kieranbrown](https://github.com/kieranbrown) in [#​59754](https://github.com/laravel/framework/pull/59754)
- \[12.x] Prevent array to string conversion in signature validation by [@​alies-dev](https://github.com/alies-dev) in [#​59778](https://github.com/laravel/framework/pull/59778)
- \[12.x] Memoize credentials in SqsConnector by [@​kieranbrown](https://github.com/kieranbrown) in [#​59867](https://github.com/laravel/framework/pull/59867)
- \[12.x] Disable pausing on managed queue workers by [@​kieranbrown](https://github.com/kieranbrown) in [#​59871](https://github.com/laravel/framework/pull/59871)
- \[DRAFT] Verify merging `12.x` branch by [@​crynobone](https://github.com/crynobone) in [#​59929](https://github.com/laravel/framework/pull/59929)
- \[13.x] Exclude expired locks in DatabaseLock::isLock by [@​JurianArie](https://github.com/JurianArie) in [#​59948](https://github.com/laravel/framework/pull/59948)
- \[13.x] Merge attribute-provided middleware with existing middleware by [@​jnoordsij](https://github.com/jnoordsij) in [#​59944](https://github.com/laravel/framework/pull/59944)
- \[13.x] Tighten getCurrentSchemaListing [@​return](https://github.com/return) in MySQL and SQLite builders by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59942](https://github.com/laravel/framework/pull/59942)
- \[13.x] Correct Repository::setStore [@​return](https://github.com/return) to $this by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59940](https://github.com/laravel/framework/pull/59940)
- \[13.x] Correct Limit::none() [@​return](https://github.com/return) type to Unlimited by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59938](https://github.com/laravel/framework/pull/59938)
- \[13.x] Add collation to processColumns and getColumns return shape by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59937](https://github.com/laravel/framework/pull/59937)
- \[13.x] Mark processViews schema field nullable in [@​return](https://github.com/return) shape by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59941](https://github.com/laravel/framework/pull/59941)
- Improve docblock wording in AurthorizationException by [@​Talha-74](https://github.com/Talha-74) in [#​59930](https://github.com/laravel/framework/pull/59930)
- \[13.x] Add Worker Pausing/Resuming events by [@​jackbayliss](https://github.com/jackbayliss) in [#​59895](https://github.com/laravel/framework/pull/59895)
- \[13.x] Allow PHPStan to infer the pivot type when passing the pivot model directly by [@​axlon](https://github.com/axlon) in [#​59959](https://github.com/laravel/framework/pull/59959)
- \[13.x] Document missing $health param on ApplicationBuilder::withRouting by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59968](https://github.com/laravel/framework/pull/59968)
- \[13.x] Correct Log\Context\Repository::handleUnserializeExceptionsUsing [@​return](https://github.com/return) to $this by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59965](https://github.com/laravel/framework/pull/59965)
- \[13.x] Correct Attribute caching toggles [@​return](https://github.com/return) to $this by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59962](https://github.com/laravel/framework/pull/59962)
- \[13.x] Correct Factory::configure [@​return](https://github.com/return) to $this by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59963](https://github.com/laravel/framework/pull/59963)
- \[13.x] Correct Translator::handleMissingKeysUsing [@​return](https://github.com/return) to $this by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59964](https://github.com/laravel/framework/pull/59964)
- \[13.x] Correct Password::min [@​return](https://github.com/return) to static by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59967](https://github.com/laravel/framework/pull/59967)
- \[13.x] Mark processIndexes type field nullable in [@​return](https://github.com/return) shape by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59961](https://github.com/laravel/framework/pull/59961)
- Add `assertSessionMissingInput` by [@​jasonmccreary](https://github.com/jasonmccreary) in [#​59970](https://github.com/laravel/framework/pull/59970)
- \[13.x] Mark generation type field nullable in processColumns [@​return](https://github.com/return) shape by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59960](https://github.com/laravel/framework/pull/59960)
- \[13.x] Allow custom on delete/update by [@​JurianArie](https://github.com/JurianArie) in [#​59986](https://github.com/laravel/framework/pull/59986)
- Allow mail default driver to accept enums by [@​Tresor-Kasenda](https://github.com/Tresor-Kasenda) in [#​59973](https://github.com/laravel/framework/pull/59973)
- \[13.x] LocalScope private recursion by [@​jackbayliss](https://github.com/jackbayliss) in [#​59979](https://github.com/laravel/framework/pull/59979)
- \[13.x] Add an environment filter to the `schedule:list` command by [@​m-fi](https://github.com/m-fi) in [#​59993](https://github.com/laravel/framework/pull/59993)
- \[13.x] Add generic result type to collection min/max methods by [@​jnoordsij](https://github.com/jnoordsij) in [#​59991](https://github.com/laravel/framework/pull/59991)
- \[13.x] Drop 12.x release notes and update heading by [@​jnoordsij](https://github.com/jnoordsij) in [#​59987](https://github.com/laravel/framework/pull/59987)
- \[13.x] Add enum support to QueueFake assertPushedOn method by [@​riesjart](https://github.com/riesjart) in [#​59990](https://github.com/laravel/framework/pull/59990)
- \[13.x] Improvements to collection sort docblocks by [@​jnoordsij](https://github.com/jnoordsij) in [#​59988](https://github.com/laravel/framework/pull/59988)
- \[13.x] Add all\* queue inspection methods by [@​jackbayliss](https://github.com/jackbayliss) in [#​59997](https://github.com/laravel/framework/pull/59997)
- \[13.x] Add support for `SortDirection` enum to query builder classes by [@​jnoordsij](https://github.com/jnoordsij) in [#​59865](https://github.com/laravel/framework/pull/59865)
### [`v13.7.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1370---2026-04-28)
[Compare Source](https://github.com/laravel/framework/compare/v13.6.0...v13.7.0)
- \[13.x] Apply rector fixes by [@​lucasmichot](https://github.com/lucasmichot) in [#​59787](https://github.com/laravel/framework/pull/59787)
- Support enum in LazyCollection -> keyBy() by [@​Back1ng](https://github.com/Back1ng) in [#​59809](https://github.com/laravel/framework/pull/59809)
- \[13.x] Add enum support to ConcurrencyManager driver method by [@​maherelgamil](https://github.com/maherelgamil) in [#​59801](https://github.com/laravel/framework/pull/59801)
- \[13.x] Allow arrays for assertSoftDeleted & assertNotSoftDeleted by [@​jackbayliss](https://github.com/jackbayliss) in [#​59796](https://github.com/laravel/framework/pull/59796)
- \[13.x] Extract exception context in `JsonFormatter` when `ExceptionHandler` is not bound by [@​cosmastech](https://github.com/cosmastech) in [#​59799](https://github.com/laravel/framework/pull/59799)
- \[13.x] Add isLocked to the Lock class by [@​jackbayliss](https://github.com/jackbayliss) in [#​59791](https://github.com/laravel/framework/pull/59791)
- Fix route registration for domain-scoped routes by [@​Bottelet](https://github.com/Bottelet) in [#​59793](https://github.com/laravel/framework/pull/59793)
- \[13.x] Mark `Scope@apply` builder parameter as having covariant template by [@​jnoordsij](https://github.com/jnoordsij) in [#​59790](https://github.com/laravel/framework/pull/59790)
- \[13.x] Allowing `DebounceFor` attribute to be inherited by [@​TWithers](https://github.com/TWithers) in [#​59795](https://github.com/laravel/framework/pull/59795)
- \[13.x] Fix PendingDispatch resolving Cache for every dispatched job by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59821](https://github.com/laravel/framework/pull/59821)
- \[13.x] Add bulk JSON path assertions to TestResponse by [@​cyrodjohn](https://github.com/cyrodjohn) in [#​59829](https://github.com/laravel/framework/pull/59829)
- \[13.x] Fix false positives in LazyCollection::has() for duplicate keys by [@​Button99](https://github.com/Button99) in [#​59832](https://github.com/laravel/framework/pull/59832)
- \[13.x] Add UnitEnum type support for $limiterName on RateLimitedWithRedis by [@​trippo](https://github.com/trippo) in [#​59841](https://github.com/laravel/framework/pull/59841)
- \[13.x] Allow jobs to react to worker signals by [@​jackbayliss](https://github.com/jackbayliss) in [#​59833](https://github.com/laravel/framework/pull/59833)
- \[13.x] Honor empty JSON:API sparse fieldsets by [@​prateekbhujel](https://github.com/prateekbhujel) in [#​59813](https://github.com/laravel/framework/pull/59813)
- \[13.x] Fix flaky DynamoBatchTest timing assertions by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59844](https://github.com/laravel/framework/pull/59844)
- \[13.x] Memoize credentials in SqsConnector by [@​kieranbrown](https://github.com/kieranbrown) in [#​59866](https://github.com/laravel/framework/pull/59866)
- \[13.x] Disable pausing on managed queue workers by [@​kieranbrown](https://github.com/kieranbrown) in [#​59870](https://github.com/laravel/framework/pull/59870)
- \[13.x] Fix getMigrationBatches return type annotation by [@​mahfuz-rahman007](https://github.com/mahfuz-rahman007) in [#​59876](https://github.com/laravel/framework/pull/59876)
- \[13.x] Fix PHPDoc typo in MigrationRepositoryInterface by [@​mahfuz-rahman007](https://github.com/mahfuz-rahman007) in [#​59875](https://github.com/laravel/framework/pull/59875)
- \[13.x] Add UnitEnum support to Cache Repository touch method by [@​shane-zeng](https://github.com/shane-zeng) in [#​59864](https://github.com/laravel/framework/pull/59864)
- \[13.x] Prevent array query params from bypassing signed URL validation by [@​maherelgamil](https://github.com/maherelgamil) in [#​59860](https://github.com/laravel/framework/pull/59860)
- \[13.x] Add enum support to setDefaultDriver in QueueManager, LogManager, and SessionManager by [@​maherelgamil](https://github.com/maherelgamil) in [#​59861](https://github.com/laravel/framework/pull/59861)
- \[13.x] Add enum support to RedisManager purge method by [@​genius-asif-hub](https://github.com/genius-asif-hub) in [#​59857](https://github.com/laravel/framework/pull/59857)
- \[13.x] Fix factory hasAttached method pivot JSON attribute handling by [@​rmd974](https://github.com/rmd974) in [#​59856](https://github.com/laravel/framework/pull/59856)
- \[13.x] Implement CanFlushLocks on NullStore and MemoizedStore by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59850](https://github.com/laravel/framework/pull/59850)
- \[13.x] Introduce WorkerInterrupted event by [@​jackbayliss](https://github.com/jackbayliss) in [#​59848](https://github.com/laravel/framework/pull/59848)
- \[13.x] Fix MigrationRepositoryInterface return type docblocks (object vs array) by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59887](https://github.com/laravel/framework/pull/59887)
- int argument for Collection::sortBy() by [@​lorenzolosa](https://github.com/lorenzolosa) in [#​59894](https://github.com/laravel/framework/pull/59894)
- \[13.x] Add detailed [@​return](https://github.com/return) shape to Schema\Builder::getForeignKeys by [@​maherelgamil](https://github.com/maherelgamil) in [#​59903](https://github.com/laravel/framework/pull/59903)
- \[13.x] Fix EloquentModelDecimalCastingTest assertion across brick/math versions by [@​maherelgamil](https://github.com/maherelgamil) in [#​59904](https://github.com/laravel/framework/pull/59904)
- \[13.x] Correct Lock getCurrentOwner [@​return](https://github.com/return) type to string|null by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59890](https://github.com/laravel/framework/pull/59890)
- \[13.x] Correct Batch fresh and add [@​return](https://github.com/return) to self|null by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59891](https://github.com/laravel/framework/pull/59891)
- \[13.x] Align Mailable::cc [@​return](https://github.com/return) with sibling fluent methods by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59892](https://github.com/laravel/framework/pull/59892)
- \[13.x] Add support for `SortDirection` enum to collections and Arr by [@​jnoordsij](https://github.com/jnoordsij) in [#​59859](https://github.com/laravel/framework/pull/59859)
- Add [@​fonts](https://github.com/fonts) Blade directive and Vite font optimization runtime by [@​WendellAdriel](https://github.com/WendellAdriel) in [#​59584](https://github.com/laravel/framework/pull/59584)
- \[13.x] Refactor: add `match` by [@​alipowerful7](https://github.com/alipowerful7) in [#​59914](https://github.com/laravel/framework/pull/59914)
- \[13.x] Refactor: remove unnecessary call function by [@​alipowerful7](https://github.com/alipowerful7) in [#​59915](https://github.com/laravel/framework/pull/59915)
- \[13.x] Refactor: improve tests by [@​alipowerful7](https://github.com/alipowerful7) in [#​59912](https://github.com/laravel/framework/pull/59912)
- Align Enumerable all, times and range [@​return](https://github.com/return) with implementations by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59911](https://github.com/laravel/framework/pull/59911)
- Align Enumerable search and flatten [@​return](https://github.com/return) with implementations by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59910](https://github.com/laravel/framework/pull/59910)
- Specify Translation Loader namespaces shape by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59913](https://github.com/laravel/framework/pull/59913)
- Fix duplicate type key in getTypes/processTypes return shape by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59909](https://github.com/laravel/framework/pull/59909)
- int argument for sortByDesc and Enumerable sort methods by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59907](https://github.com/laravel/framework/pull/59907)
- Match processForeignKeys return shape to Builder::getForeignKeys by [@​mosabbirrakib](https://github.com/mosabbirrakib) in [#​59908](https://github.com/laravel/framework/pull/59908)
### [`v13.6.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1360---2026-04-21)
[Compare Source](https://github.com/laravel/framework/compare/v13.5.0...v13.6.0)
- \[13.x] Use `version_compare` function by [@​lucasmichot](https://github.com/lucasmichot) in [#​59687](https://github.com/laravel/framework/pull/59687)
- \[13.x] Flip misordered assertions arguments by [@​lucasmichot](https://github.com/lucasmichot) in [#​59691](https://github.com/laravel/framework/pull/59691)
- \[13.x] Remove unused variable in `catch()` by [@​lucasmichot](https://github.com/lucasmichot) in [#​59689](https://github.com/laravel/framework/pull/59689)
- \[13.x] Fix number abbreviation rollover between unit tiers by [@​Button99](https://github.com/Button99) in [#​59692](https://github.com/laravel/framework/pull/59692)
- \[13.x ]Use Null and Isset coalescing when possible by [@​lucasmichot](https://github.com/lucasmichot) in [#​59690](https://github.com/laravel/framework/pull/59690)
- \[13.x] Change `count` array comparison to empty array comparison to improve performance by [@​lucasmichot](https://github.com/lucasmichot) in [#​59688](https://github.com/laravel/framework/pull/59688)
- \[13.x] testsuite by [@​lucasmichot](https://github.com/lucasmichot) in [#​59702](https://github.com/laravel/framework/pull/59702)
- \[13.x] Enforce static calls by [@​lucasmichot](https://github.com/lucasmichot) in [#​59704](https://github.com/laravel/framework/pull/59704)
- \[13.x] Allow Table Attribute on child to override parent by [@​jackbayliss](https://github.com/jackbayliss) in [#​59701](https://github.com/laravel/framework/pull/59701)
- \[13.x] Return null from Cursor::fromEncoded for malformed payloads by [@​bipinks](https://github.com/bipinks) in [#​59699](https://github.com/laravel/framework/pull/59699)
- \[13.x] Port forward rate limiter fix by [@​paulandroshchuk](https://github.com/paulandroshchuk) in [#​59706](https://github.com/laravel/framework/pull/59706)
- \[13.x] Add debounceable queued jobs by [@​matthewnessworthy](https://github.com/matthewnessworthy) in [#​59507](https://github.com/laravel/framework/pull/59507)
- \[13.x] Support JSON responses for the built-in health route by [@​WendellAdriel](https://github.com/WendellAdriel) in [#​59710](https://github.com/laravel/framework/pull/59710)
- \[13.x] Ensure Queue::route string defaults to queue only by [@​jackbayliss](https://github.com/jackbayliss) in [#​59711](https://github.com/laravel/framework/pull/59711)
- \[13.x] Fix failOnUnknownFields query parameter handling by [@​cyrodjohn](https://github.com/cyrodjohn) in [#​59728](https://github.com/laravel/framework/pull/59728)
- \[13.x] Fix flaky QueueWorkerTest by freezing time before computing retryUntil by [@​bipinks](https://github.com/bipinks) in [#​59727](https://github.com/laravel/framework/pull/59727)
- \[13.x] Allow array of pivot arrays to be passed to hasAttached by [@​jackbayliss](https://github.com/jackbayliss) in [#​59723](https://github.com/laravel/framework/pull/59723)
- \[13.x] Fix TypeError in digits\_between validation rule on non-string values by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59717](https://github.com/laravel/framework/pull/59717)
- \[13.x] Add enum support to PasswordBrokerManager by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59714](https://github.com/laravel/framework/pull/59714)
- \[13.x] Add enum support to BroadcastManager by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59713](https://github.com/laravel/framework/pull/59713)
- Change attempts column type from tiny to small integer by [@​ju-gow](https://github.com/ju-gow) in [#​59718](https://github.com/laravel/framework/pull/59718)
- \[13.x] Get rid of useless Mockery::close by [@​lucasmichot](https://github.com/lucasmichot) in [#​59730](https://github.com/laravel/framework/pull/59730)
- \[13.x] Fix Vite CSS not loaded from nested chunk imports by [@​karim1999](https://github.com/karim1999) in [#​59662](https://github.com/laravel/framework/pull/59662)
- \[13.x] Support named credential providers for SQS queue connections by [@​kieranbrown](https://github.com/kieranbrown) in [#​59733](https://github.com/laravel/framework/pull/59733)
- \[13.x] Enforce stricter assertions by [@​lucasmichot](https://github.com/lucasmichot) in [#​59749](https://github.com/laravel/framework/pull/59749)
- \[13.x] Cast to string before preg\_match in decimal, max\_digits, and min\_digits rules by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59739](https://github.com/laravel/framework/pull/59739)
- \[13.x] Ignore PHPUnit security advisory GHSA-qrr6-mg7r-m243 by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59761](https://github.com/laravel/framework/pull/59761)
- \[13.x] Allow assertDatabase has & missing to accept arrays by [@​jackbayliss](https://github.com/jackbayliss) in [#​59752](https://github.com/laravel/framework/pull/59752)
- \[13.x ] Normalize Carbon by [@​lucasmichot](https://github.com/lucasmichot) in [#​59750](https://github.com/laravel/framework/pull/59750)
- \[13.x] Implement CanFlushLocks on FailoverStore by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59738](https://github.com/laravel/framework/pull/59738)
- \[13.x] Validate MAC across all decryption keys by [@​ma32kc](https://github.com/ma32kc) in [#​59742](https://github.com/laravel/framework/pull/59742)
- \[13.x] Use generic TModel in additional places in Factory class by [@​jnoordsij](https://github.com/jnoordsij) in [#​59780](https://github.com/laravel/framework/pull/59780)
- \[13.x] Ensure assertModelMissing and assertModelExists dont silently pass by [@​jackbayliss](https://github.com/jackbayliss) in [#​59772](https://github.com/laravel/framework/pull/59772)
- \[13.x] Introduce `JsonFormatter` by [@​cosmastech](https://github.com/cosmastech) in [#​59756](https://github.com/laravel/framework/pull/59756)
- \[13.x] Add prefersJsonResponses() to the application builder by [@​WendellAdriel](https://github.com/WendellAdriel) in [#​59753](https://github.com/laravel/framework/pull/59753)
- \[13.x] Add support for Cloudflare Email Service by [@​dwightwatson](https://github.com/dwightwatson) in [#​59735](https://github.com/laravel/framework/pull/59735)
- \[13.x] Add enum support to NotificationChannelManager channel and driver methods by [@​yousefkadah](https://github.com/yousefkadah) in [#​59783](https://github.com/laravel/framework/pull/59783)
### [`v13.5.0`](https://github.com/laravel/framework/blob/HEAD/CHANGELOG.md#v1350---2026-04-14)
[Compare Source](https://github.com/laravel/framework/compare/v13.4.0...v13.5.0)
- \[13.x] Support #\[Delay] attribute on queued mailables by [@​sumaiazaman](https://github.com/sumaiazaman) in [#​59580](https://github.com/laravel/framework/pull/59580)
- \[13.x] Added inheritance support for Controller Middleware attributes. by [@​niduranga](https://github.com/niduranga) in [#​59597](https://github.com/laravel/framework/pull/59597)
- \[13.x] Normalize phpredis SSL context for single and cluster connections by [@​timmylindh](https://github.com/timmylindh) in [#​59569](https://github.com/laravel/framework/pull/59569)
- \[13.x] Memoize the result of `TestCase@withoutBootingFramework()` by [@​cosmastech](https://github.com/cosmastech) in [#​59610](https://github.com/laravel/framework/pull/59610)
- \[13.x] Add missing [@​throws](https://github.com/throws) and docblocks for concurrency and model in… by [@​scabarcas17](https://github.com/scabarcas17) in [#​59602](https://github.com/laravel/framework/pull/59602)
- \[13.x] Fix that retries of `ShouldBeUniqueUntilProcessing` jobs are force-releasing locks they don't own by [@​kohlerdominik](https://github.com/kohlerdominik) in [#​59567](https://github.com/laravel/framework/pull/59567)
- \[13.x] Add first-class Redis Cluster support for Queue and ConcurrencyLimiter by [@​timmylindh](https://github.com/timmylindh) in [#​59533](https://github.com/laravel/framework/pull/59533)
- \[13.x] chore: Update PHP version from 8.2 to 8.3 in `bin/test.sh` script by [@​crynobone](https://github.com/crynobone) in [#​59605](https://github.com/laravel/framework/pull/59605)
- \[13.x] Fix RedisQueueTest by [@​jackbayliss](https://github.com/jackbayliss) in [#​59613](https://github.com/laravel/framework/pull/59613)
- \[13.x] Add enum support to CacheManager store and driver methods by [@​yousefkadah](https://github.com/yousefkadah) in [#​59637](https://github.com/laravel/framework/pull/59637)
- \[13.x] Fix redirectUsersTo() overwriting redirectGuestsTo() callback by [@​timmylindh](https://github.com/timmylindh) in [#​59633](https://github.com/laravel/framework/pull/59633)
- \[13.x] Add ability to detect unserializable values returned from cache by [@​jackbayliss](https://github.com/jackbayliss) in [#​59630](https://github.com/laravel/framework/pull/59630)
- \[13.x] Fix loose comparison false positive in NotPwnedVerifier with magic hash passwords by [@​scabarcas17](https://github.com/scabarcas17) in [#​59644](https://github.com/laravel/framework/pull/59644)
- \[13.x] Refactor `Skip` middleware by [@​cosmastech](https://github.com/cosmastech) in [#​59651](https://github.com/laravel/framework/pull/59651)
- \[13.x] Resolve stan errors on MySqlSchemaState by [@​jackbayliss](https://github.com/jackbayliss) in [#​59652](https://github.com/laravel/framework/pull/59652)
- \[13.x] Allow closure values in updateOrCreate and firstOrNew by [@​yousefkadah](https://github.com/yousefkadah) in [#​59647](https://github.com/laravel/framework/pull/59647)
- \[13.x] Add enum support to MailManager mailer and driver methods by [@​yousefkadah](https://github.com/yousefkadah) in [#​59645](https://github.com/laravel/framework/pull/59645)
- \[13.x] Add enum support to AuthManager guard and shouldUse methods by [@​yousefkadah](https://github.com/yousefkadah) in [#​59646](https://github.com/laravel/framework/pull/59646)
- \[13.x] Add spatie/fork to composer suggestions by [@​jnoordsij](https://github.com/jnoordsij) in [#​59660](https://github.com/laravel/framework/pull/59660)
- \[13.x] Add enum support to Manager driver method by [@​scabarcas17](https://github.com/scabarcas17) in [#​59659](https://github.com/laravel/framework/pull/59659)
- \[13.x] Fix custom driver binding bug and improve by [@​ollieread](https://github.com/ollieread) in [#​59614](https://github.com/laravel/framework/pull/59614)
- \[13.x] Improve PHPDoc for "safe" method with conditional return type by [@​leo95batista](https://github.com/leo95batista) in [#​59684](https://github.com/laravel/framework/pull/59684)
- \[13.x] Bump Retry action in CI by [@​jackbayliss](https://github.com/jackbayliss) in [#​59681](https://github.com/laravel/framework/pull/59681)
- \[13.x] Move Scope interface [@​template](https://github.com/template) from method-level to class-level to fix LSP violation by [@​kayw-geek](https://github.com/kayw-geek) in [#​59675](https://github.com/laravel/framework/pull/59675)
- \[13.x] Combine consecutive `isset` and `unset` by [@​lucasmichot](https://github.com/lucasmichot) in [#​59685](https://github.com/laravel/framework/pull/59685)
- \[13.x] Changes `strlen` comparison to 0 to direct empty string compare by [@​lucasmichot](https://github.com/lucasmichot) in [#​59686](https://github.com/laravel/framework/pull/59686)
### [`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.61.1...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.61.1`](https://github.com/laravel/framework/releases/tag/v12.61.1)
[Compare Source](https://github.com/laravel/framework/compare/v12.61.0...v12.61.1)
- \[12.x] Preserve empty HTTP attach contents by [@​GrahamCampbell](https://github.com/GrahamCampbell) in [#​60291](https://github.com/laravel/framework/pull/60291)
- Fix [@​params](https://github.com/params) typo in Fluent and MessageBag toPrettyJson() docblocks by [@​Amirhf1](https://github.com/Amirhf1) in [#​60313](https://github.com/laravel/framework/pull/60313)
- \[12.x] Fix regex typo in Env::addVariableToEnvContents that prevented quotin… by [@​Amirhf1](https://github.com/Amirhf1) in [#​60312](https://github.com/laravel/framework/pull/60312)
- \[12.x] Fix Number::trim() returning null for INF and NAN values by [@​Amirhf1](https://github.com/Amirhf1) in [#​60322](https://github.com/laravel/framework/pull/60322)
- \[12.x] Fix FIFO queue name normalization in Cloud managed queues by [@​kieranbrown](https://github.com/kieranbrown) in [#​60316](https://github.com/laravel/framework/pull/60316)
- \[12.x] Fix Number::pairs() infinite loop when $by is zero or negative by [@​Amirhf1](https://github.com/Amirhf1) in [#​60324](https://github.com/laravel/framework/pull/60324)
- \[12.x] Ensure path seperators aren't encoded in LocalFilesystemAdapter by [@​jackbayliss](https://github.com/jackbayliss) in [#​60350](https://github.com/laravel/framework/pull/60350)
- \[12.x] Ensure `config` is bound before trying to log deprecation notice by [@​crynobone](https://github.com/crynobone) in [#​60376](https://github.com/laravel/framework/pull/60376)
### [`v12.61.0`](https://github.com/laravel/framework/releases/tag/v12.61.0)
[Compare Source](https://github.com/laravel/framework/compare/v12.60.2...v12.61.0)
- \[12.x] Accept Symfony's new control-characters exception message in mailer test by [@​kieranbrown](https://github.com/kieranbrown) in [#​60203](https://github.com/laravel/framework/pull/60203)
- \[12.x] Fix queue:failed command to show real class name by [@​clementmas](https://github.com/clementmas) in [#​60279](https://github.com/laravel/framework/pull/60279)
- \[12.x] Throw ManagedQueueNotFoundException when a managed queue is missing by [@​kieranbrown](https://github.com/kieranbrown) in [#​60276](https://github.com/laravel/framework/pull/60276)
### [`v12.60.2`](https://github.com/laravel/framework/releases/tag/v12.60.2)
[Compare Source](https://github.com/laravel/framework/compare/v12.60.1...v12.60.2)
- \[12.x] Boot managed queues before service providers boot by [@​kieranbrown](https://github.com/kieranbrown) in [#​60199](https://github.com/laravel/framework/pull/60199)
### [`v12.60.1`](https://github.com/laravel/framework/releases/tag/v12.60.1)
[Compare Source](https://github.com/laravel/framework/compare/v12.60.0...v12.60.1)
- \[12.x] Rename X-Request-ID header to Cloud-Request-ID by [@​kieranbrown](https://github.com/kieranbrown) in [#​60189](https://github.com/laravel/framework/pull/60189)
### [`v12.60.0`](https://github.com/laravel/framework/releases/tag/v12.60.0)
[Compare Source](https://github.com/laravel/framework/compare/v12.59.0...v12.60.0)
- \[12.x] Fix Number::fileSize() handling of negative byte values by [@​Amirhf1](https://github.com/Amirhf1) in [#​60147](https://github.com/laravel/framework/pull/60147)
- \[12.x] Remove stale PHPStan ignore comments from type tests by [@​jradtilbrook](https://github.com/jradtilbrook) in [#​60167](https://github.com/laravel/framework/pull/60167)
- \[12.x] Output cloud request ID in logs by [@​jradtilbrook](https://github.com/jradtilbrook) in [#​60166](https://github.com/laravel/framework/pull/60166)
- \[12.x] Dedicated Cloud Queue by [@​kieranbrown](https://github.com/kieranbrown) in [#​60181](https://github.com/laravel/framework/pull/60181)
### [`v12.59.0`](https://github.com/laravel/framework/releases/tag/v12.59.0)
[Compare Source](https://github.com/laravel/framework/compare/v12.58.0...v12.59.0)
- \[12.x] Disable pausing on managed queue workers by [@​kieranbrown](https://github.com/kieranbrown) in [#​59871](https://github.com/laravel/framework/pull/59871)
- \[12.x] Fix infinite recursion when defining model scope with attribute as private by [@​noefleury](https://github.com/noefleury) in [#​59958](https://github.com/laravel/framework/pull/59958)
- \[12.x] Fix infinite recursion when middleware group referencing itself by [@​noefleury](https://github.com/noefleury) in [#​60002](https://github.com/laravel/framework/pull/60002)
- \[12.x] Backport [#​60000](https://github.com/laravel/framework/issues/60000) to 12.x by [@​iWader](https://github.com/iWader) in [#​60006](https://github.com/laravel/framework/pull/60006)
- \[12.x] Narrow attachment url scheme by [@​benbjurstrom](https://github.com/benbjurstrom) in [#​60035](https://github.com/laravel/framework/pull/60035)
- \[12.x] backport [#​60045](https://github.com/laravel/framework/issues/60045) to 12.x by [@​levikl](https://github.com/levikl) in [#​60052](https://github.com/laravel/framework/pull/60052)
- \[12.x] Back port cloud queues by [@​timacdonald](https://github.com/timacdonald) in [#​60122](https://github.com/laravel/framework/pull/60122)
### [`v12.58.0`](https://github.com/laravel/framework/releases/tag/v12.58.0)
[Compare Source](https://github.com/laravel/framework/compare/v12.57.0...v12.58.0)
- \[12.x] Memoize credentials in SqsConnector by [@​kieranbrown](https://github.com/kieranbrown) in [#​59867](https://github.com/laravel/framework/pull/59867)
### [`v12.57.0`](https://github.com/laravel/framework/releases/tag/v12.57.0)
[Compare Source](https://github.com/laravel/framework/compare/v12.56.0...v12.57.0)
- Preserve types on partialMock() and spy() by [@​AJenbo](https://github.com/AJenbo) in [#​59384](https://github.com/laravel/framework/pull/59384)
- Fix missing UnitEnum support in ModelNotFoundException by [@​jtheuerkauf](https://github.com/jtheuerkauf) in [#​59423](https://github.com/laravel/framework/pull/59423)
- \[12.x] Fix macros with static closures by [@​FeBe95](https://github.com/FeBe95) in [#​59449](https://github.com/laravel/framework/pull/59449)
- Correct Storage::fake() return type by [@​AJenbo](https://github.com/AJenbo) in [#​59469](https://github.com/laravel/framework/pull/59469)
- \[12.x] Fix callable type for freezeTime, freezeSecond, and travelTo by [@​nbayramberdiyev](https://github.com/nbayramberdiyev) in [#​59466](https://github.com/laravel/framework/pull/59466)
- \[12.x] Support string abstract in mock/partialMock/spy PHPDoc by [@​kayw-geek](https://github.com/kayw-geek) in [#​59477](https://github.com/laravel/framework/pull/59477)
- Document thrown exceptions in FilesystemAdapter by [@​AJenbo](https://github.com/AJenbo) in [#​59534](https://github.com/laravel/framework/pull/59534)
- Hint \Redis `@mixin` on Connection by [@​AJenbo](https://github.com/AJenbo) in [#​59532](https://github.com/laravel/framework/pull/59532)
- \[12.x] Use PDO subclass polyfill by [@​jnoordsij](https://github.com/jnoordsij) in [#​59640](https://github.com/laravel/framework/pull/59640)
- \[12.x] Fix infinite rate limiter TTL on custom increments by [@​paulandroshchuk](https://github.com/paulandroshchuk) in [#​59693](https://github.com/laravel/framework/pull/59693)
- \[12.x] Support named credential providers for SQS queue connections by [@​kieranbrown](https://github.com/kieranbrown) in [#​59754](https://github.com/laravel/framework/pull/59754)
- \[12.x] Prevent array to string conversion in signature validation by [@​alies-dev](https://github.com/alies-dev) in [#​59778](https://github.com/laravel/framework/pull/59778)
### [`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/releases/tag/v12.54.1)
[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/releases/tag/v12.54.0)
[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/releases/tag/v12.53.0)
[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/releases/tag/v12.52.0)
[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/releases/tag/v12.51.0)
[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 [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIwMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
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.14.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.14.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.14.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.14.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.14.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.14.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.14.0 to [renovate-composer]: upgrade laravel/framework - 12.50.0 → 13.14.0 - autoclosed2026-06-09 16:14:42 +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.14.0Compare Source
Request::createFromBase()compatibility with Symfony 8.1 by @irabbi360 in #60354Message::embeddata attachment handling by @miladev95 in #60361v13.13.0Compare Source
UniqueForby @cosmastech in #60289Illuminate\Http\Responsecompatibility against Symfony 8.1 by @crynobone in #60318whereDateandwhereTimecrash when $column is anExpressionby @ahawlitschek in #60314schedule:pausecommand should error when its disabled by @jackbayliss in #60347v13.12.0Compare Source
normalizeparameter toStr::studly()andStr::pascal()by @hotmeteor in #60229compact()call by @browner12 in #60235compact()to variables by @lucasmichot in #60236file:prefix by @crynobone in #60261Client\Request::uri()by @stevebauman in #60282v13.11.2Compare Source
v13.11.1Compare Source
v13.11.0Compare Source
v13.10.0Compare Source
Eventin callbacks by @cosmastech in #60144assertPushedOnce()by @weshooper in #60150Event@callEventCallback()by @cosmastech in #60148reduceandreduceWithKeysby @jnoordsij in #60178v13.9.0Compare Source
mb_splitwithpreg_splitby @jnoordsij in #60012rand()tomt_rand()by @browner12 in #60018mt_srand()deprecated "mode" argument by @browner12 in #60020fail-fastoption by @lucasmichot in #60019$parametersinvalidate*case()by @weshooper in #60024Builderpaginate methods by @levikl in #60045queue:pausewhenWorkerisn't pausable by @weshooper in #60023Attachment::fromUrl()URL scheme validation by @mdalikadar in #60054apply()method by @browner12 in #60055after_commitfor Cloud queue metrics by @timacdonald in #60078github-oauthcredentials on Linux & Windows Actions by @crynobone in #60095github-oauthcredentials on Linux & Windows Actions" by @crynobone in #60100ThrottlesExceptionsmiddleware by @cosmastech in #60103v13.8.0Compare Source
schedule:listdisplay expression in the correct timezone by @xiCO2k in #59307@mixinon Connection by @AJenbo in #5953212.xbranch by @crynobone in #59929assertSessionMissingInputby @jasonmccreary in #59970schedule:listcommand by @m-fi in #59993SortDirectionenum to query builder classes by @jnoordsij in #59865v13.7.0Compare Source
JsonFormatterwhenExceptionHandleris not bound by @cosmastech in #59799Scope@applybuilder parameter as having covariant template by @jnoordsij in #59790DebounceForattribute to be inherited by @TWithers in #59795SortDirectionenum to collections and Arr by @jnoordsij in #59859matchby @alipowerful7 in #59914v13.6.0Compare Source
version_comparefunction by @lucasmichot in #59687catch()by @lucasmichot in #59689countarray comparison to empty array comparison to improve performance by @lucasmichot in #59688JsonFormatterby @cosmastech in #59756v13.5.0Compare Source
TestCase@withoutBootingFramework()by @cosmastech in #59610ShouldBeUniqueUntilProcessingjobs are force-releasing locks they don't own by @kohlerdominik in #59567bin/test.shscript by @crynobone in #59605Skipmiddleware by @cosmastech in #59651issetandunsetby @lucasmichot in #59685strlencomparison to 0 to direct empty string compare by @lucasmichot in #59686v13.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.61.1Compare Source
configis bound before trying to log deprecation notice by @crynobone in #60376v12.61.0Compare Source
v12.60.2Compare Source
v12.60.1Compare Source
v12.60.0Compare Source
v12.59.0Compare Source
v12.58.0Compare Source
v12.57.0Compare Source
@mixinon Connection by @AJenbo in #59532v12.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 Mend Renovate.
⚠️ 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.14.0to [renovate-composer]: upgrade laravel/framework - 12.50.0 → 13.14.0 - autoclosedPull request closed