Laravel 12.43.0, released on 16th December 2025, is a small but dense release focused on type-safety, cache/DB robustness, HTTP testing ergonomics, and a couple of nice DX additions.
High‑level changes
- Type & PHPDoc improvements across Bus, HTTP client, events, and collections to give better static analysis and IDE support
- Stability fixes around cache locks, database reconnection, Xdebug edge cases, and validation behavior
- Testing enhancements like new response assertions, Storage fakes with enums, and additional tests for core helpers
Type & PHPDoc improvements
- Added PHPDoc callable types for
BusFakemethods, improving auto-complete and static analysis when faking the bus - Improved type annotations for
$batchIdin theBatchabletrait and for synchronous HTTP client return types, tightening expectations when working with jobs andHttp::calls - Added missing docblock parameters in the
FailedOverevent and extra type hints/tests around higher-order proxies and collection behavior.
Runtime and bug fixes
- Fixed a deadlock bug in
cache_locksduring cleanup, improving reliability for distributed locks. - Fixed PHP 8.5 deprecations related to using a
nullcache store and passingnulltoarray_key_existsinAsPivot. - Fixed
hasEvenNumberOfParenthesesthrowingParseErrorwhen Xdebug is active and ensuredPassword::required()actually fails when the value is missing.
Framework behavior & minor tweaks
- Simplified clearing resolved instances for
Facadeclasses to clean up the container more predictably. PendingDispatch::afterResponseis now conditional, so after-response behavior is only registered when applicable.- Added
mergeHiddenandmergeVisibletoCollection, making it easier to merge visibility rules across model collections.
Tooling, tests, and integrations
Storage::fake()can now accept enums as disk names, aligning with enum-backed configuration patterns.- Added PHP 8.5 with Herd passthrough vars in
ServeCommand, updated GitHub Actionscheckoutto v6, and cleaned up theDynamoDbStore. - Added more tests (Support
Uriclass, HigherOrderProxy, Client Response tappable, etc.) and made the HTTP clientResponseclass tappable for more flexible middleware-like manipulation.
#v12.43.0
The following release notes are directly from the changelog. I have compiled a list of the changes from the changelog below:
- [12.x] Add PHPDoc callable types for BusFake methods by @alies-dev in https://github.com/laravel/framework/pull/58070
- Improve type annotations of
$batchIdinBatchabletrait by @markieo1 in https://github.com/laravel/framework/pull/58069 - [12.x] Fix deadlock in cache_locks on cleanup by @jackbayliss in https://github.com/laravel/framework/pull/58071
- feat: implement 'assertFailedDependency' response assertion by @artengin in https://github.com/laravel/framework/pull/58061
- [12.x] Fix using
nullcache store triggering PHP 8.5 deprecation by @jnoordsij in https://github.com/laravel/framework/pull/58074 - [12.x] Fix deprecated usage of passing
nulltoarray_key_existsinAsPivotclass by @jnoordsij in https://github.com/laravel/framework/pull/58073 - [12.x] Simplify clearing resolved instances for
Facadeclasses by @jnoordsij in https://github.com/laravel/framework/pull/58072 - [12.x] Add PHP 8.5 with Herd to passthrough variables in ServeCommand by @bashgeek in https://github.com/laravel/framework/pull/58080
- [12.x] Update actions/checkout v4 to v6 by @jackbayliss in https://github.com/laravel/framework/pull/58078
- [12.x] Let Storage::fake() accept enum as disk name by @bbredewold in https://github.com/laravel/framework/pull/58076
- Improve PHPDoc return type for synchronous HTTP Client methods by @khaled-sadek in https://github.com/laravel/framework/pull/58090
- [12.x] Adjust testCanRetrieveAllFailedJobs by @jackbayliss in https://github.com/laravel/framework/pull/58096
- [12.x] Allow Factory connection method to accept null by @jackbayliss in https://github.com/laravel/framework/pull/58108
- [12.x] Make PendingDispatch::afterResponse conditional by @kenneth-saey in https://github.com/laravel/framework/pull/58099
- [12.x] Add
mergeHiddenandmergeVisiblemethods to Collection class by @mahmoudmohamedramadan in https://github.com/laravel/framework/pull/58110 - Added "SSL error: unexpected eof" message to LostConnectionDetector by @GuidoHendriks in https://github.com/laravel/framework/pull/58113
- [12.x] Update git-auto-commit action by @jackbayliss in https://github.com/laravel/framework/pull/58118
- [12.x] Add tests for Support Uri class by @miladev95 in https://github.com/laravel/framework/pull/58114
- [12.x] Make the Client Response class tappable by @kevinb1989 in https://github.com/laravel/framework/pull/58115
- [12.x] Add missing docblock param in FailedOver event docblocks by @jackbayliss in https://github.com/laravel/framework/pull/58123
- [12.x] Clean up DynamoDbStore by @cosmastech in https://github.com/laravel/framework/pull/58116
- [12.x] Fix: Handle
ParseErrorinhasEvenNumberOfParentheseswhen Xdebug is active by @crynobone in https://github.com/laravel/framework/pull/58128 - [12.x] Fix Password::required() to fail when value is missing by @faisuc in https://github.com/laravel/framework/pull/58125
- [12.x] Add HigherOrderProxy tests (Collection & Tap) by @miladev95 in https://github.com/laravel/framework/pull/58138
- [12.x] Run
ConnectionEstablishedevent on database reconnection by @crynobone in https://github.com/laravel/framework/pull/58136