Laravel Release Notes
282 release notes curated from 4 sources by the Releasebot Team. Last updated: Jun 10, 2026
Laravel Products
- Jun 9, 2026
- Date parsed from source:Jun 9, 2026
- First seen by Releasebot:Jun 10, 2026
v13.15.0
Laravel ships a broad round of 12.x and 13.x updates with queue and cloud queue improvements, tighter validation and routing safeguards, Blade and filesystem fixes, and several developer experience refinements across logging, translations, and JsonSchema support.
[12.x]
- Fix infinite recursion when defining model scope with attribute as private by @noefleury in #59958
- Fix infinite recursion when middleware group referencing itself by @noefleury in #60002
- Backport #60000 to 12.x by @iWader in #60006
- Narrow attachment url scheme by @benbjurstrom in #60035
- backport #60045 to 12.x by @levikl in #60052
- Back port cloud queues by @timacdonald in #60122
- Fix Number::fileSize() handling of negative byte values by @Amirhf1 in #60147
- Remove stale PHPStan ignore comments from type tests by @jradtilbrook in #60167
- Output cloud request ID in logs by @jradtilbrook in #60166
- Dedicated Cloud Queue by @kieranbrown in #60181
- Rename X-Request-ID header to Cloud-Request-ID by @kieranbrown in #60189
- Boot managed queues before service providers boot by @kieranbrown in #60199
- Accept Symfony's new control-characters exception message in mailer test by @kieranbrown in #60203
- Fix queue:failed command to show real class name by @clementmas in #60279
- Throw ManagedQueueNotFoundException when a managed queue is missing by @kieranbrown in #60276
- Preserve empty HTTP attach contents by @GrahamCampbell in #60291
- Fix @params typo in Fluent and MessageBag toPrettyJson() docblocks by @Amirhf1 in #60313
- Fix regex typo in Env::addVariableToEnvContents that prevented quotin… by @Amirhf1 in #60312
- Fix Number::trim() returning null for INF and NAN values by @Amirhf1 in #60322
- Fix FIFO queue name normalization in Cloud managed queues by @kieranbrown in #60316
- Fix Number::pairs() infinite loop when $by is zero or negative by @Amirhf1 in #60324
- Ensure path seperators aren't encoded in LocalFilesystemAdapter by @jackbayliss in #60350
- Ensure config is bound before trying to log deprecation notice by @crynobone in #60376
- Add JSON Schema array deserializer by @pushpak1300 in #60387
- Skip pg_collation lookup in compileColumns() on PostgreSQL servers before 9.1 by @fissible in #60400
[13.x]
- Fix validation bypass in date_equals rule due to loose comparison by @gr8man in #60393
- Add Macroable to InvokedProcess by @yoeriboven in #60392
- Restrict allowed classes in routing unserialization by @gr8man in #60391
- Extract flexible cache created-key prefix into a named constant by @Amirhf1 in #60390
- Add missing type hints to WorkerIdle and listenForSignals to match sibling events by @Amirhf1 in #60389
- Allow enums in Queue::route by @jackbayliss in #60402
- Ensure unchanged compiled Blade views are not left expired by @dansan92 in #60401
- Add units to queue attributes by @jackbayliss in #60431
- Add Prohibitable to cache:clear and queue:flush by @jackbayliss in #60430
- Refactor: use Repository::FLEXIBLE_CREATED_KEY_PREFIX in test by @alipowerful7 in #60424
- Refactor: add \JsonException by @alipowerful7 in #60423
- Add generics to DatabaseTransactionsManager transaction getters by @dfinchenko in #60420
- Fix: add @throws \ReflectionException by @alipowerful7 in #60436
- Fix: add |null in doc blocks by @alipowerful7 in #60435
- Merge branch 12.x by @crynobone in #60441
- fix model:prune Command options validation typo by @clemblanco in #60444
- Add typed translation accessors by @dansan92 in #60443
- Fix HandleExceptions fatal when static::$app is null during Octane request marshaling by @majidfeiz in #60439
- Adjust PruneCommandTest by @jackbayliss in #60445
- Add generic to QueueRoutes::all() return type by @dfinchenko in #60447
- Pass reflection parameter to contextual attribute resolve method by @SanderSander in #60457
- Add multi-type union support to Illuminate JsonSchema by @pushpak1300 in #60455
- Cache rememberWithState() by @cosmastech in #60385
- Jun 9, 2026
- Date parsed from source:Jun 9, 2026
- First seen by Releasebot:Jun 10, 2026
v12.62.0
Laravel adds JSON Schema array deserialization, multi-type union support, and a PostgreSQL compileColumns() performance fix.
[12.x] Add JSON Schema array deserializer by @pushpak1300 in #60387
[12.x] Skip pg_collation lookup in compileColumns() on PostgreSQL servers before 9.1 by @fissible in #60400
[12.x] Add multi-type union support to Illuminate JsonSchema by @pushpak1300 in #60462
Original source All of your release notes in one feed
Join Releasebot and get updates from Laravel and hundreds of other software products.
- Jun 4, 2026
- Date parsed from source:Jun 4, 2026
- First seen by Releasebot:Jun 5, 2026
v13.14.0
Laravel releases 13.x updates with HTTP client and queue improvements, JSON schema and payload handling, session and header fixes, cloud logging and mail tweaks, plus GitHub Actions hardening and workflow permission updates for safer automation.
[13.x] Register the lazy refresh hook on all connections by @tontonsb in #60359
[13.x] Cache falsy JSON payloads in HTTP client responses by @Button99 in #60357
[13.x] GitHub Actions hardening by @nunomaduro in #60363
[13.x] Bump the github-actions group with 4 updates by @dependabot[bot] in #60364
[13.x] Fix Request::createFromBase() compatibility with Symfony 8.1 by @irabbi360 in #60354
[13.x] Set default cooldown for GitHub Actions updates by @JurianArie in #60368
[13.x] Fix Message::embed data attachment handling by @miladev95 in #60361
[13.x] Namespace the cloud logging formatter by @timacdonald in #60362
[13.x] Grant contents: read to pull requests workflow by @nunomaduro in #60370
[13.x] Respect child queue properties over inherited attributes by @mattiasgeniar in #60369
[13.x] Grant contents: read and pull-requests: write to issues workflow by @nunomaduro in #60371
[13.x] Use least-privilege permissions for pull requests and issues workflows by @nunomaduro in #60372
[13.x] Pin pull requests and issues workflows to latest laravel/.github by @nunomaduro in #60373
[13.x] Enable Dependabot auto-merge by @nunomaduro in #60383
[13.x] Foundation\Cloud\Events: remove an unused import and fix docblock by @oliverquynh in #60378
[13.x] Fix StartSession docblock by @oliverquynh in #60375
[13.x] Add JSON Schema array deserializer by @pushpak1300 in #60384
[13.x] Add queue to InspectedJob by @jackbayliss in #60374
[13.x] Fix treatment of null headers by @GrahamCampbell in #60386
[13.x] Add units to DebounceFor by @jackbayliss in #60388
Original source - Jun 4, 2026
- Date parsed from source:Jun 4, 2026
- First seen by Releasebot:Jun 5, 2026
v12.61.1
Laravel fixes a set of 12.x edge cases across HTTP attachments, environment parsing, number handling, queue name normalization, filesystem paths, and deprecation logging, improving reliability and consistency in everyday framework behavior.
[12.x] Preserve empty HTTP attach contents by @GrahamCampbell in #60291
Fix @params typo in Fluent and MessageBag toPrettyJson() docblocks by @Amirhf1 in #60313
[12.x] Fix regex typo in Env::addVariableToEnvContents that prevented quotin… by @Amirhf1 in #60312
[12.x] Fix Number::trim() returning null for INF and NAN values by @Amirhf1 in #60322
[12.x] Fix FIFO queue name normalization in Cloud managed queues by @kieranbrown in #60316
[12.x] Fix Number::pairs() infinite loop when $by is zero or negative by @Amirhf1 in #60324
[12.x] Ensure path seperators aren't encoded in LocalFilesystemAdapter by @jackbayliss in #60350
[12.x] Ensure config is bound before trying to log deprecation notice by @crynobone in #60376
Original source - Jun 2, 2026
- Date parsed from source:Jun 2, 2026
- First seen by Releasebot:Jun 2, 2026
v13.13.0
Laravel ships a broad 13.x update with new Bus::bulk() support, cache memoization for the Cache attribute, richer notifications and job inspection, and improved HTTP client, queue, scheduler, validation, and database handling across Symfony, Cloudflare, MariaDB, and SQL Server.
[13.x] Add stan ignore for MySqlSchemaState by @jackbayliss in #60284
[13.x] Add attachFromStorage helpers to notification MailMessage by @LucasCavalheri in #60268
Original source
[13.x] Allow Http Client to be used as PSR Client by @willrowe in #60295
[13.x] Normalize HTTP client header values by @GrahamCampbell in #60292
[13.x] Report MultipleRecordsFoundException from sole() by @PeteBishwhip in #60294
[13.x] Hint unit in UniqueFor by @cosmastech in #60289
[13.x] Fix inverted ratio comparison operators in image dimension validation by @Button99 in #60290
[13.x] Allow scheduler to opt out of pause and interrupt cache checks by @jackbayliss in #60226
[13.x] Enhance Cache attribute to support memoization by @jenky in #60309
[13.x] Indicate an event was skipped by @cosmastech in #60311
[13.x] Fix Illuminate\Http\Response compatibility against Symfony 8.1 by @crynobone in #60318
fix: fix isUniqueConstraintError to catch SQL Server error 2627 by @ErfanMomeniii in #60320
[13.x] Fix FIFO queue name normalization in Cloud managed queues by @kieranbrown in #60315
fix: whereDate and whereTime crash when $column is an Expression by @ahawlitschek in #60314
[13.x] Introduce Bus::bulk() by @jackbayliss in #60297
[13.x] Fix time-sensitive flaky test in NotificationDatabaseChannelTest by @KentarouTakeda in #60333
fix: Add content_id to inline attachment handling in CloudflareTransport by @pablo-gonzalez-helpwan in #60330
[13.x] Add payload to InspectedJob by @jackbayliss in #60326
Added MariaDB vector index capability by @michielvaneerd in #60334
Fix @theme directive collision in health check view by @cathrinevaage in #60340
[13.x] Remove unused variables from tests by @oliverquynh in #60338
[13.x] fix: Queue and Connection attributes in Mailable::queue() and later() by @irabbi360 in #60328
[13.x] Fix ValidationImageFileRuleTest by @jackbayliss in #60348
[13.x] schedule:pause command should error when its disabled by @jackbayliss in #60347 - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - Add @fonts Blade Directive and Vite Font Optimization Runtime
Laravel adds the @fonts Blade directive to automatically load web fonts from Vite font manifests.
Pull request by @WendellAdriel
Loading web fonts has always involved a bit of ceremony - preload links, @font-face rules, HTTP/2 server push headers. The new @fonts Blade directive handles all of that automatically by reading font manifests generated by the Vite font plugin, injecting the right <link rel="preload"> tags, inline styles, and push headers in one shot.
<!DOCTYPE html> <html> <head> @fonts @vite("resources/js/app.js") </head> </html>Need only a subset of your configured families on a given page? Pass their aliases:
Original source@fonts(["sans", "mono"]) - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - Add `storage` Cache Store
Laravel now supports a filesystem-backed cache driver, letting existing disks like S3 serve as key/value cache without extra infrastructure.
Pull request by @taylorotwell
Laravel's cache system now supports a storage driver backed by the filesystem, making it straightforward to use an existing disk - like S3 - as a key/value cache without any additional infrastructure.
Original source - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - [13.x] Add Optional Disk Storage for Large SQS Queue Payloads
Laravel adds opt-in SQS payload offloading for large jobs, automatically storing oversized queue messages on a configured filesystem disk like S3 and passing a small pointer through the queue instead. It also supports always-on offloading and cleanup after successful processing.
Pull request by @Orrison
SQS has a 1 MB message size cap, and large job payloads will hit it eventually. This new opt-in feature automatically offloads payloads that exceed the limit to a configured filesystem disk - like S3 - sending a small pointer through the queue instead. Workers pick up the real payload transparently on the other side.
Add an extended_store_options block to your SQS connection config to get started:
'sqs' => [ // ... 'extended_store_options' => [ 'enabled' => env('SQS_STORE_ENABLED', false), 'disk' => env('SQS_STORE_DISK', 's3'), 'prefix' => env('SQS_STORE_PREFIX', ''), 'always' => false, 'cleanup' => true, ], ],Set always to true to route every payload through disk regardless of size. With cleanup enabled, the stored file is removed once the job processes successfully.
Original source - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - [13.x] Add Method to Convert a Password Instance to a `passwordrules` String
Laravel adds passwordrules support with a new toPasswordRulesString() method, making it easier for apps to generate browser-friendly passwords that match validation constraints and reduce rejected signups.
Pull request by @imliam
Password managers like 1Password and Safari can read the passwordrules HTML attribute to generate passwords that satisfy your app's policy - no more rejected passwords and frustrated users at registration. The new toPasswordRulesString() method on the Password rule converts your validation constraints into the right format automatically.
<input type="password" autocomplete="new-password" passwordrules="{{ Password::defaults()->toPasswordRulesString() }}" />The method maps directly from your existing validation rules:
Original sourcePassword::min(12)->max(64)->mixedCase()->numbers()->symbols()->toPasswordRulesString() // 'minlength: 12; maxlength: 64; required: lower; required: upper; required: digit; required: special;' - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - [13.x] Allow Jobs to React to Worker Signals
Laravel adds an Interruptible queue job interface that lets running jobs react to SIGTERM before a worker shuts down, so they can stop loops, release locks, and save state during deployments.
Pull request by @jackbayliss
When a queue worker receives a SIGTERM during a deployment, any running job normally has no idea it's about to be cut off. The new Interruptible interface lets jobs react - stop loops, release locks, save state - before the worker shuts down.
Original sourceuse Illuminate\Contracts\Queue\Interruptible; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Queue\Queueable; class SignalJob implements ShouldQueue, Interruptible { use Queueable; protected bool $stop = false; public function handle(): void { while (!$this->stop) { sleep(1); // Do work... } } public function interrupted(int $signal): void { $this->stop = true; } } - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - [13.x] Add an Environment Filter to the `schedule:list` Command
Laravel adds a schedule:list --environment flag to show only tasks that run in the selected environment.
Pull request by @m-fi
Running
schedule:liston production used to show every registered task - including those that only run locally. A new--environmentflag filters the output to just the tasks that actually run in the specified environment.
Original sourcephp artisan schedule:list --environment=production - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - Stop When Empty for Queue Worker Option
Laravel adds a new queue:work --stop-when-empty-for option to stop idle workers after a set time.
Pull request by @taylorotwell
A new
--stop-when-empty-foroption onqueue:workstops the worker after it has been idle for a configurable number of seconds. Useful for auto-scaling setups where workers should wind down rather than sit idle indefinitely.
Original sourcephp artisan queue:work --stop-when-empty-for=60 - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - [13.x] Add `foreignUuidFor` Schema Helper
Laravel adds foreignUuidFor migration helper for UUID-backed relationships.
Pull request by @Tresor-Kasenda
A new foreignUuidFor migration helper joins foreignIdFor in the schema builder. It infers the column name, related table, and referenced primary key from the model - the same convenience as foreignIdFor, but explicitly for UUID-backed relationships.
Original source$table->foreignUuidFor(User::class)->constrained(); - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - [13.x] Make `ClearCommand` Prohibitable
Laravel adds prohibit() support to cache:clear for hosted environment protection.
Pull request by @jackbayliss
cache:clear
cache:clear now supports prohibit(), the same opt-in protection mechanism available on db:fresh, migrate:fresh, and other commands you'd want to block in hosted environments.
Original sourceClearCommand::prohibit($inHostedEnvironments); - May 31, 2026
- Date parsed from source:May 31, 2026
- First seen by Releasebot:Jun 2, 2026
Laravel Framework 13.x - [13.x] Add `normalize` Parameter to `Str::studly()` and `Str::pascal()`
Laravel adds optional Str::studly normalize support for all-caps strings while preserving existing behavior.
Pull request by @hotmeteor
All-caps strings like CBOR or ALL_CAPS used to pass through Str::studly() unchanged - ucfirst has nothing to do when every letter is already uppercase. An optional normalize: true parameter lowercases all-uppercase word segments before conversion, giving you the expected output.
Str::studly('CBOR', normalize: true) // 'Cbor' Str::studly('ALL_CAPS', normalize: true) // 'AllCaps'Mixed-case strings are left untouched, and the default is false so existing behavior is preserved.
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.
Similar to Laravel with recent updates:
- xAI release notes84 release notes · Latest Jun 11, 2026
- Anthropic release notes614 release notes · Latest Jun 11, 2026
- Cursor release notes97 release notes · Latest Jun 11, 2026
- Notion release notes133 release notes · Latest Jun 10, 2026
- OpenAI release notes743 release notes · Latest Jun 11, 2026
- Teamviewer release notes190 release notes · Latest Jun 9, 2026