# Laravel changelog > The PHP framework for web artisans. - Vendor: Laravel - Category: Frameworks & Libraries - Official site: https://laravel.com - Tracked by: What's New (https://whatsnew.fyi/product/laravel) - Harvested from: GitHub (laravel/framework) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v12.65.0 - Date: 2026-08-05 - Version: v12.65.0 - Original notes: https://github.com/laravel/framework/releases/tag/v12.65.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v12.65.0 - **fixed** — Prevent fatal errors when logging deprecations fails - **fixed** — Fix Factory::insert() with a count of zero - **fixed** — Fix schedule:list timezone conversion for range, step, and wildcard cron expressions - **fixed** — Fix getMigrationBatches return type annotation * [12.x] Prevent fatal errors when logging deprecations fails by @GrahamCampbell in https://github.com/laravel/framework/pull/60907 * [12.x] Fix Factory::insert() with a count of zero by @alies-dev in https://github.com/laravel/framework/pull/60911 * [12.x] Fix schedule:list timezone conversion for range, step, and wildcard cron expressions by @xiCO2k in https://github.com/laravel/framework/pull/60913 * [12.x] Fix getMigrationBatches return type annotation by @wouterj in https://github.com/laravel/framework/pull/60973 ### v13.24.0 - Date: 2026-08-04 - Version: v13.24.0 - Original notes: https://github.com/laravel/framework/releases/tag/v13.24.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v13.24.0 - **added** — Add modelKeys() to Eloquent query builder - **added** — Add an array_keys validation rule - **added** — Add dominant color detection to image driver - **added** — Add HEIC and additional AVIF support - **added** — Add NumberPrompt fallback - **changed** — Respect job delays when bulk pushing to QueueFake - **changed** — Use immutable timestamps in batch testing fakes - **changed** — Avoid rebuilding every cached Route on CompiledRouteCollection lookups - **changed** — Re-evaluate unmatched BindWhen attributes - **changed** — Memoize TestResponse::decodeResponseJson() - **changed** — Escape single quotes in Postgres JSON path attributes - **changed** — Preserve relation constraints when resolving attributes during noConstraints - **changed** — Respect job delays when bulk pushing to FailoverQueue - **changed** — Fix validation stalling for minutes on large arrays - **fixed** — Fix DumpCommand return type - **fixed** — Fix PendingProcess losing falsy command strings on run()/start() - **fixed** — Detect circular alias references in Container - **fixed** — Fix pagination edge cases - **fixed** — Prevent TypeError in Validator::validateDistinct() - **fixed** — Fix appended accessors receiving null in toArray() * [13.x] Add `modelKeys()` to Eloquent query builder by @ziadoz in https://github.com/laravel/framework/pull/60924 * [13.x] Add an array_keys validation rule by @nebarg in https://github.com/laravel/framework/pull/60918 * [13.x] Respect job delays when bulk pushing to QueueFake by @Faiyajz in https://github.com/laravel/framework/pull/60916 * [13.x] Use immutable timestamps in batch testing fakes by @alies-dev in https://github.com/laravel/framework/pull/60912 * [13.x] Avoid rebuilding every cached Route on CompiledRouteCollection lookups by @lucasmichot in https://github.com/laravel/framework/pull/60909 * [13.x] Fix `DumpCommand` return type. by @KentarouTakeda in https://github.com/laravel/framework/pull/60934 * [13.x] Re-evaluate unmatched BindWhen attributes by @Faiyajz in https://github.com/laravel/framework/pull/60933 * [13.x] Add if-related rector rules by @lucasmichot in https://github.com/laravel/framework/pull/60930 * [13.x] Use self::SUCCESS/self::FAILURE in console commands by @lucasmichot in https://github.com/laravel/framework/pull/60928 * [13.x] Fake the pwnedpasswords API in ValidationPasswordRuleTest by @lucasmichot in https://github.com/laravel/framework/pull/60927 * fix typo by @theHocineSaad in https://github.com/laravel/framework/pull/60942 * [13.x] Memoize TestResponse::decodeResponseJson() by @lucasmichot in https://github.com/laravel/framework/pull/60929 * [13.x] Consolidate Artisan command $name/getArguments()/getOptions() into $signature by @lucasmichot in https://github.com/laravel/framework/pull/60926 * [13.x] Escape single quotes in Postgres JSON path attributes by @kpanuragh in https://github.com/laravel/framework/pull/60923 * [13.x] Preserve relation constraints when resolving attributes during noConstraints by @hamdyelbatal122 in https://github.com/laravel/framework/pull/60931 * [13.x] Replace throw_if/throw_unless with explicit if/throw in src/ by @lucasmichot in https://github.com/laravel/framework/pull/60944 * [13.x] Adds dominant color detection to image driver by @dr-codswallop in https://github.com/laravel/framework/pull/60932 * Fix PendingProcess losing falsy command strings on run()/start() by @lucasmichot in https://github.com/laravel/framework/pull/60947 * [13.x] Use Collection only()/diff() instead of filter()/reject() with in_array() by @lucasmichot in https://github.com/laravel/framework/pull/60945 * [13.x] Use enum_value() helper in a few more places by @lucasmichot in https://github.com/laravel/framework/pull/60983 * [13.x] Remove redundant m::close() by @lucasmichot in https://github.com/laravel/framework/pull/60981 * [13.x] Add missing conditionable, reflection, macroable requires by @lucasmichot in https://github.com/laravel/framework/pull/60980 * [13.x] Use Stringable::explode() instead of new Collection(explode()) by @lucasmichot in https://github.com/laravel/framework/pull/60979 * [13.x] Prefer isEmpty()/isNotEmpty()/contains() over count() checks by @lucasmichot in https://github.com/laravel/framework/pull/60978 * [13.x] Avoid redundant Collection passes in map/filter/reject chains by @lucasmichot in https://github.com/laravel/framework/pull/60977 * [13.x] Detect circular alias references in Container by @lucasmichot in https://github.com/laravel/framework/pull/60974 * [13.x] Fix pagination edge cases by @lucasmichot in https://github.com/laravel/framework/pull/60968 * [13.x] Solve another PHP 8.5 null index deprecation by @tontonsb in https://github.com/laravel/framework/pull/60964 * [13.x] Prevent TypeError in Validator::validateDistinct() by @theHocineSaad in https://github.com/laravel/framework/pull/60961 * [13.x] Fix Actions remove `imagedestroy` from tests by @jackbayliss in https://github.com/laravel/framework/pull/60957 * [13.x] Add NumberPrompt fallback by @romain-mezghenna in https://github.com/laravel/framework/pull/60959 * [13.x] Fix PHP 8.5 null array offset deprecation in `Relation::getMorphedModel()` by @mertasan in https://github.com/laravel/framework/pull/60 _[Truncated at 4000 characters — full notes: https://github.com/laravel/framework/releases/tag/v13.24.0]_ ### v13.23.0 - Date: 2026-07-27 - Version: v13.23.0 - Original notes: https://github.com/laravel/framework/releases/tag/v13.23.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v13.23.0 - **added** — Add a monthly log driver - **added** — Add SES tenant support to the SES v2 transport - **added** — Add monthly channel to logging config - **changed** — Improve types in Image class - **changed** — Allow ImageManager fromStorage disk to accept enums - **changed** — Improve Collection::select generic types - **changed** — Allow ->using(...) in ->change() migrations for PostgreSQL compatibility - **changed** — Use a timing-safe comparison for the maintenance mode bypass secret - **fixed** — Fix null handling in Arr::last() method - **fixed** — Prevent fatal errors when logging deprecations fails - **fixed** — Fix default handling in CookieJar::queued() - **fixed** — Fix schedule:list timezone conversion for range, step, and wildcard cron expressions * Bump postcss from 8.5.15 to 8.5.23 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot[bot] in https://github.com/laravel/framework/pull/60884 * [13.x] Add a monthly log driver by @SjorsO in https://github.com/laravel/framework/pull/60892 * [13.x] Improve types in `Image` class by @shaedrich in https://github.com/laravel/framework/pull/60890 * Fix null handling in Arr::last() method by @AmadulHaque in https://github.com/laravel/framework/pull/60887 * [13.x] Allow ImageManager fromStorage disk to accept enums by @riesjart in https://github.com/laravel/framework/pull/60889 * [13.x] Add SES tenant support to the SES v2 transport by @atymic in https://github.com/laravel/framework/pull/60886 * Bump actions/checkout from 7.0.0 to 7.0.1 in the github-actions group by @dependabot[bot] in https://github.com/laravel/framework/pull/60900 * [13.x] Prevent fatal errors when logging deprecations fails by @GrahamCampbell in https://github.com/laravel/framework/pull/60893 * [13.x] Bump `monolog/monolog` constraint by @jackbayliss in https://github.com/laravel/framework/pull/60894 * [13.x] Add monthly channel to logging config by @yazansalhi in https://github.com/laravel/framework/pull/60895 * [13.x] Use a timing-safe comparison for the maintenance mode bypass secret by @yazansalhi in https://github.com/laravel/framework/pull/60896 * [13.x] Improve `Collection::select` generic types by @timacdonald in https://github.com/laravel/framework/pull/60898 * [13.x] Allow ->using(...) in ->change() migrations for PostgreSQL compatibility by @shemgp in https://github.com/laravel/framework/pull/60901 * Revert "[13.x] Fix that retries of `ShouldBeUniqueUntilProcessing` jobs are force-releasing locks they don't own" by @taylorotwell in https://github.com/laravel/framework/pull/60905 * [13.x] Fix default handling in `CookieJar::queued()` by @alies-dev in https://github.com/laravel/framework/pull/60904 * [13.x] Fix schedule:list timezone conversion for range, step, and wildcard cron expressions by @xiCO2k in https://github.com/laravel/framework/pull/60877 ### v13.22.0 - Date: 2026-07-24 - Version: v13.22.0 - Original notes: https://github.com/laravel/framework/releases/tag/v13.22.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v13.22.0 - **fixed** — Fix PHP extensions in sqlite workflow job - **changed** — Use new Stringable() instead of Str::of()/str() internally - **added** — Add exception to JobReleasedAfterException - **added** — Implement creationTimeOfOldestPendingJob on the QueueFake - **fixed** — Check traits in resolveClassAttribute - **changed** — Optimize Str::ucfirst and Str::lcfirst using native PHP 8.4 functions - **fixed** — Fix queue name parameter in Mailer::later() - **added** — Support stream bodies in HTTP fake responses - **added** — Allow RateLimiter to be Macroable - **added** — Add a #[BindWhen()] attribute to conditionally bind into the container - **fixed** — Restore iterable support to Arr::every() and Arr::some() - **added** — Add multi-queue support to queue:clear command - **fixed** — Fix Cache::touch() expiration handling - **changed** — Mark HTTP testing credentials as sensitive - **added** — Allow faking DNS lookups in validation rules - **fixed** — Fix iterable support in Arr::last() - **added** — Support Delay attribute when using Bus::batch & bulk * [13.x] Fix PHP extensions in sqlite workflow job by @lucasmichot in https://github.com/laravel/framework/pull/60850 * [13.x] Use new Stringable(...) instead of Str::of()/str() internally by @lucasmichot in https://github.com/laravel/framework/pull/60852 * [13.x] Extract PHP setup steps into a shared composite action by @lucasmichot in https://github.com/laravel/framework/pull/60851 * [13.x] add the exception to JobReleasedAfterException by @jackbayliss in https://github.com/laravel/framework/pull/60823 * [13.x] Implement `creationTimeOfOldestPendingJob` on the QueueFake by @jackbayliss in https://github.com/laravel/framework/pull/60730 * [13.x] Check traits in resolveClassAttribute by @jackbayliss in https://github.com/laravel/framework/pull/60566 * [13.x] Enable additional Rector rules by @lucasmichot in https://github.com/laravel/framework/pull/60854 * [13.x] Optimize Str::ucfirst and Str::lcfirst using native PHP 8.4 functions by @bunyaminbilenkaratas in https://github.com/laravel/framework/pull/60864 * [13.x] Fix queue name parameter in Mailer::later() by @Button99 in https://github.com/laravel/framework/pull/60865 * [13.x] Support stream bodies in HTTP fake responses by @drewmt in https://github.com/laravel/framework/pull/60834 * [13.x] Allow RateLimiter to be Macroable by @jackbayliss in https://github.com/laravel/framework/pull/60869 * [13.x] Add a `#[BindWhen()]` attribute to conditionally bind into the container by @ziadoz in https://github.com/laravel/framework/pull/60862 * [13.x] Add timeout minutes to workflows by @jackbayliss in https://github.com/laravel/framework/pull/60872 * [13.x] Restore iterable support to Arr::every() and Arr::some() by @Amirhf1 in https://github.com/laravel/framework/pull/60876 * [13.x] ColumnDefinition::unsigned takes a parameter, which should be documented by @afk11 in https://github.com/laravel/framework/pull/60875 * [13.x] Add multi-queue support to queue:clear command by @miladshakerdn in https://github.com/laravel/framework/pull/60873 * [13.x] Fix Cache::touch() expiration handling by @Amirhf1 in https://github.com/laravel/framework/pull/60878 * [13.x] Mark HTTP testing credentials as sensitive by @Amirhf1 in https://github.com/laravel/framework/pull/60880 * [13.x] Allow faking DNS lookups in validation rules by @SjorsO in https://github.com/laravel/framework/pull/60879 * [13.x] Fix iterable support in Arr::last() by @Amirhf1 in https://github.com/laravel/framework/pull/60881 * [13.x] Support `Delay` attribute when using `Bus::batch` & bulk by @jackbayliss in https://github.com/laravel/framework/pull/60766 ### v13.21.1 - Date: 2026-07-21 - Version: v13.21.1 - Original notes: https://github.com/laravel/framework/releases/tag/v13.21.1 - Permalink: https://whatsnew.fyi/product/laravel/releases/v13.21.1 ### v12.64.0 - Date: 2026-07-14 - Version: v12.64.0 - Original notes: https://github.com/laravel/framework/releases/tag/v12.64.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v12.64.0 - **added** — Add capitalize parameter to Stringable::initials() - **changed** — Support Enum as queue overlap key * [12.x] Enum as queue overlap key by @finagin in https://github.com/laravel/framework/pull/60722 * [12.x] Add capitalize parameter to Stringable::initials() by @irabbi360 in https://github.com/laravel/framework/pull/60741 ### v13.20.0 - Date: 2026-07-14 - Version: v13.20.0 - Original notes: https://github.com/laravel/framework/releases/tag/v13.20.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v13.20.0 - **added** — Add missing $separator parameter to Storage facade append/prepend docblocks - **added** — Add beforePushing and afterPushing methods on QueueFake class - **added** — Add memory usage to WorkerStopping - **added** — Add assertEmpty to the Storage facade - **added** — Add first-party support for image processing - **added** — Add WithoutMiddleware controller middleware attribute - **added** — Add incrementEachQuietly and decrementEachQuietly to Eloquent models - **added** — Add ability to set session prefix for Redis - **added** — Add #[SensitiveParameter] to parameters carrying secrets - **changed** — Make MailFake::assertQueuedTimes() public - **changed** — Sync more getter return types with their property generics - **changed** — Normalize HTTP client request header lookups - **changed** — Support null for shortcut field in return type array for HasParameters::getOptions - **changed** — Add capitalize parameter to Stringable::initials() - **fixed** — Fix operator precedence in SqsQueue size fallbacks - **fixed** — Fix guessResourceName() namespace collision when class name is a substring of a parent namespace segment - **fixed** — Fix Str::containsAll() returning true for an empty needles array - **fixed** — Fix stale transformations being reapplied when branching an Image after toBytes() - **fixed** — Fix Number::forHumans() and abbreviate() returning "-0" for tiny negative values - **fixed** — Fix providesTemporaryUploadUrls should return true for s3 driver * [13.x] Add missing $separator parameter to Storage facade append/prepend docblocks by @ferhatolmez in https://github.com/laravel/framework/pull/60693 * [13.x] `beforePushing` and `afterPushing` methods on `QueueFake` class by @gdebrauwer in https://github.com/laravel/framework/pull/60689 * [13.x] Add memory usage to WorkerStopping by @jackbayliss in https://github.com/laravel/framework/pull/60613 * [13.x] Add `assertEmpty` to the Storage facade by @jackbayliss in https://github.com/laravel/framework/pull/60658 * [13.x] Adds first-party support for `image` processing by @nunomaduro in https://github.com/laravel/framework/pull/59276 * [13.x] Fix operator precedence in SqsQueue size fallbacks by @daffa-aditya-p in https://github.com/laravel/framework/pull/60702 * Add separator params to Storage facade docblocks by @Muhtasim-Munif-Fahim in https://github.com/laravel/framework/pull/60703 * [13.x] Add test for the scheduler's quarterlyOn method by @dfinchenko in https://github.com/laravel/framework/pull/60712 * Make MailFake::assertQueuedTimes() public by @Tresor-Kasenda in https://github.com/laravel/framework/pull/60710 * [13.x] Sync more getter return types with their property generics by @dfinchenko in https://github.com/laravel/framework/pull/60699 * [13.x] Fix guessResourceName() namespace collision when class name is a substring of a parent namespace segment by @Rubrasum in https://github.com/laravel/framework/pull/60707 * [13.x] Add WithoutMiddleware controller middleware attribute by @JurianArie in https://github.com/laravel/framework/pull/60709 * [13.x] Add incrementEachQuietly and decrementEachQuietly to Eloquent models by @shanerbaner82 in https://github.com/laravel/framework/pull/60720 * [13.x] Normalize HTTP client request header lookups by @Button99 in https://github.com/laravel/framework/pull/60734 * [12.x] Enum as queue overlap key by @finagin in https://github.com/laravel/framework/pull/60722 * [13.x] Support null for shortcut field in return type array for HasParameters::getOptions (#60723) by @wimski in https://github.com/laravel/framework/pull/60728 * [13.x] Ability to set session prefix for Redis by @jackbayliss in https://github.com/laravel/framework/pull/60700 * [13.x] Add `#[SensitiveParameter]` to parameters carrying secrets by @axlon in https://github.com/laravel/framework/pull/60753 * [13.x] Optimize by using contains or doesntContain by @lucasmichot in https://github.com/laravel/framework/pull/60745 * [13.x] Remove redundant Mockery::close() calls by @lucasmichot in https://github.com/laravel/framework/pull/60743 * [13.x] Only register pail in DevCommands when `pcntl_fork` is available by @jackbayliss in https://github.com/laravel/framework/pull/60749 * [13.x] Use PHPUnit rector sets instead of individual rules by @lucasmichot in https://github.com/laravel/framework/pull/60744 * [13.x] Replace manual all/any foreach loops with array_all/array_any by @lucasmichot in https://github.com/laravel/framework/pull/60742 * [13.x] Add test for the Uri toStringable method by @dfinchenko in https://github.com/laravel/framework/pull/60739 * [13.x] Fix Str::containsAll() returning true for an empty needles array by @lucasmichot in https://github.com/laravel/framework/pull/60746 * [13.x] Fix stale transformations being reapplied when branching an Image after toBytes() by @lucasmichot in https://github.com/laravel/framework/pull/60748 * [13.x] Fix Number::forHumans() and abbreviate() returning "-0" for tiny negative values by @semx in https://github.com/laravel/framework/pull/60736 * [13.x] Add test for the Email rule's strict method by @dfinchenko in https://github.com/laravel/framework/pull/60740 * [13.x] fix: providesTemporaryUploadUrls should return true for s3 driver by @joostdebruijn in https://github.com/laravel/framework/pull/60755 * [12.x] Add capitalize parameter to Stringable::initials() by @irabbi360 in https://github.com/laravel/framework/pull/60741 * [13.x] Fix dynamic calls to incrementEachQuietly and d _[Truncated at 4000 characters — full notes: https://github.com/laravel/framework/releases/tag/v13.20.0]_ ### v12.63.0 - Date: 2026-07-07 - Version: v12.63.0 - Original notes: https://github.com/laravel/framework/releases/tag/v12.63.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v12.63.0 - **added** — Add new error messages for detecting lost connections - **added** — Ability to refresh cache locks - **fixed** — Guard JsonSchema deserializer against unbounded $ref expansion - **fixed** — Fix Postgres whereDate/whereTime crash when column is Expression - **changed** — Pop managed queue jobs from the cloud-agent instead of SQS - **fixed** — Terminate default style value with a semicolon in ComponentAttributeBag::merge() * [12.x] Add new error messages for detecting lost connections by @mfn in https://github.com/laravel/framework/pull/60472 * [12.x] Ability to refresh cache locks by @bytestream in https://github.com/laravel/framework/pull/58349 * [12.x] Guard JsonSchema deserializer against unbounded $ref expansion by @pushpak1300 in https://github.com/laravel/framework/pull/60524 * [12.x] Fix Postgres whereDate/whereTime crash when column is Expression by @irabbi360 in https://github.com/laravel/framework/pull/60540 * [12.x] Pop managed queue jobs from the cloud-agent instead of SQS by @kieranbrown in https://github.com/laravel/framework/pull/60660 * [12.x] Terminate default style value with a semicolon in ComponentAttributeBag::merge() by @Amirhf1 in https://github.com/laravel/framework/pull/60665 ### v13.19.0 - Date: 2026-07-07 - Version: v13.19.0 - Original notes: https://github.com/laravel/framework/releases/tag/v13.19.0 - Permalink: https://whatsnew.fyi/product/laravel/releases/v13.19.0 - **added** — Support inspecting reserved jobs on the queue fake - **added** — Add `reduceInto` method to collection - **added** — Add `counted` method to `Str` and `Stringable` - **added** — Add `query` and `queryJson` HTTP testing helpers - **added** — Add `Http::query()` method to the HTTP client - **changed** — Ensure `deletedAtColumn` is passed to `assertSoftDeleted` and `assertNotSoftDeleted` - **changed** — Pop managed queue jobs from the cloud-agent instead of SQS - **changed** — Terminate default style value with a semicolon in ComponentAttributeBag::merge() - **changed** — Allow mail config options without name - **changed** — Send bulk SQS jobs via SendMessageBatch - **removed** — Remove deprecated `StaticCallOnNonStaticToInstanceCallRector` fixer rule * [13.x] Support inspecting reserved jobs on the queue fake by @jackbayliss in https://github.com/laravel/framework/pull/60644 * [13.x] Add `reduceInto` method to collection by @JosephSilber in https://github.com/laravel/framework/pull/60651 * [13.x] Add `counted` method to `Str` and `Stringable` by @JosephSilber in https://github.com/laravel/framework/pull/60649 * [13.x] Ensure `deletedAtColumn` is passed to `assertSoftDeleted` & `assertNotSoftDeleted` by @jackbayliss in https://github.com/laravel/framework/pull/60657 * [13.x] Pop managed queue jobs from the cloud-agent instead of SQS by @kieranbrown in https://github.com/laravel/framework/pull/60659 * [12.x] Pop managed queue jobs from the cloud-agent instead of SQS by @kieranbrown in https://github.com/laravel/framework/pull/60660 * [12.x] Terminate default style value with a semicolon in ComponentAttributeBag::merge() by @Amirhf1 in https://github.com/laravel/framework/pull/60665 * Bump stefanzweifel/git-auto-commit-action from 7.1.0 to 7.2.0 in the github-actions group by @dependabot[bot] in https://github.com/laravel/framework/pull/60672 * [13.x] Update comment in `Cloud/Queue.php` by @jackbayliss in https://github.com/laravel/framework/pull/60673 * [13.x] Add tests for relative date where clauses by @aligulzar729 in https://github.com/laravel/framework/pull/60675 * [13.x] Add `phpdoc_trim_consecutive_blank_line_separation rule` to pint by @lucasmichot in https://github.com/laravel/framework/pull/60669 * [13.x] Remove deprecated `StaticCallOnNonStaticToInstanceCallRector` fixer rule by @lucasmichot in https://github.com/laravel/framework/pull/60670 * [13.x] Allow mail config options without name by @jackbayliss in https://github.com/laravel/framework/pull/60668 * [13.x] Adjust Queue comment after Dependabot by @jackbayliss in https://github.com/laravel/framework/pull/60679 * [13.x] Send bulk SQS jobs via SendMessageBatch by @kieranbrown in https://github.com/laravel/framework/pull/60645 * [13.x] Add `query` and `queryJson` HTTP testing helpers by @shanerbaner82 in https://github.com/laravel/framework/pull/60662 * [13.x] Add `Http::query()` method to the HTTP client by @shanerbaner82 in https://github.com/laravel/framework/pull/60663 * Merge branch '12.x' into 13.x by @crynobone in https://github.com/laravel/framework/pull/60684 * [13.x] Add tests for the date rule's past/future/nowOrPast/nowOrFuture methods by @aligulzar729 in https://github.com/laravel/framework/pull/60687 ### v13.18.1 - Date: 2026-07-02 - Version: v13.18.1 - Original notes: https://github.com/laravel/framework/releases/tag/v13.18.1 - Permalink: https://whatsnew.fyi/product/laravel/releases/v13.18.1 - **changed** — Allow assertDatabaseEmpty to handle iterable - **added** — Add input() method to console commands - **changed** — Handle api / json routes with Down (Maintenance) command - **fixed** — Respect channel name for on-demand log stacks - **added** — Support inspecting delayed jobs on the queue fake - **added** — Add Release queue middleware - **changed** — Update docblocks of Blueprint foreignUuid and foreignUlid to match foreignId - **fixed** — Respect the encoding in Str::mask() when building the end of the string - **fixed** — Support scalar Predis retry config to allow config:cache * [13.x] Allow assertDatabaseEmpty to handle iterable by @jackbayliss in https://github.com/laravel/framework/pull/60621 * [13.x] Add `input()` method to console commands by @stevebauman in https://github.com/laravel/framework/pull/60607 * [13.x] Handle api / json routes with Down (Maintenance) command by @davidrushton in https://github.com/laravel/framework/pull/60595 * [13.x] fix: respect channel name for on-demand log stacks by @maltf0 in https://github.com/laravel/framework/pull/60635 * [13.x] Support inspecting delayed jobs on the queue fake by @jackbayliss in https://github.com/laravel/framework/pull/60636 * Add `Release` queue middleware by @mgcodeur in https://github.com/laravel/framework/pull/60630 * [13.x] Update docblocks of Blueprint foreignUuid and foreignUlid to match foreignId by @LiddleDev in https://github.com/laravel/framework/pull/60643 * Respect the encoding in Str::mask() when building the end of the string by @iammcoding in https://github.com/laravel/framework/pull/60646 * [13.x] Supports scalar Predis retry config to allows `config:cache` by @crynobone in https://github.com/laravel/framework/pull/60642