- Laravel September product updates
- Laravel Framework changelog
- Laravel Framework v13.30.0
- Laravel Framework v13.30.1
- Laravel Framework v13.31.0
- Laravel Framework v13.32.0
- Laravel Framework v13.33.0
- Laravel Framework v13.34.0
Laravel Framework and official packages
Building per-tenant AI providers at runtime
The AI SDK’sAi::build() can now build a provider from a configuration array. You can use credentials retrieved at runtime without changing the provider configuration registered in your application.
For example, when each tenant uses its own Anthropic API key, you can create a provider from that tenant’s configuration and pass it to an agent’s prompt(). Providers built this way can also be specified as failover candidates.
When handling credentials for multiple tenants, the key point is that you explicitly specify the provider used for each call instead of rewriting global configuration. For the basics of the AI SDK, see the AI SDK guide.
Source: Build AI providers from runtime configuration
Typesense and Meilisearch search extensions in Scout
Scout’s Typesense engine now supports semantic search withsemantic() and hybrid search with hybrid(). Vectors can be generated with Laravel AI, or you can use Typesense’s automatic embedding feature or vectors you prepare yourself.
The Meilisearch engine can now use Meilisearch’s own embedders. Depending on your setup, you can choose between generating embeddings in your app or leaving it to the search engine.
Following the search extensions in August, September added more options for generating embeddings on the Typesense and Meilisearch side. Check the per-engine configuration in Scout and the search guide.
Sources: Semantic and hybrid search for Typesense, Native Meilisearch embedders
Real-time communication with Mercure
Laravel Echo gained a Mercure connector. It uses the browser’s standardEventSource API, so no additional client library is required. It supports private, presence, and encrypted channels, as well as whispers.
Framework v13.32.0 includes a Mercure broadcast driver and support for installing Mercure via install:broadcasting. v13.33.0 also added support for relative Mercure Hub URLs.
This feature combines the connector on the Echo side with the driver on the Laravel side. For configuration and authentication, see Mercure broadcasting.
Sources: Mercure broadcasting in Laravel Echo, v13.32.0, v13.33.0
Copying and moving files between disks
v13.32.0 addedcopyToDisk() and moveToDisk() to the filesystem. You can stream transfers between different disks, such as moving files from a local disk to S3. The destination can be either a disk name or a filesystem instance.
moveToDisk() deletes the source only after the copy succeeds. This reduces the need to assemble separate read, write, and delete steps in your application when migrating between disks.
Sources: Copy or move files between disks, v13.32.0. Related page: Filesystem
Improved queue measurement, stopping, and retries
September’s releases gradually strengthened visibility into queue state and control over workers.
In v13.34.0,
queue:restart now shows an error for workers that cannot be restarted. This change makes it easier to notice situations where an operational command appears to succeed but the intended restart does not happen.
Each item is sourced from the official release notes above. For the basics, see the queue guide, and for job-side control, see the advanced job control guide.
Additions to the database, Eloquent, and cache
- Dropping vector indexes: v13.30.1 added
dropVectorIndex()to the Schema Blueprint. - MySQL INPLACE operations: v13.33.0 added the
inplace()DDL algorithm modifier for index and foreign key operations. Related page: Migrations. - Refreshing model attributes after writes: v13.33.0 added the ability to refresh configured model attributes after a write.
- Casts that preserve NULL: v13.33.0 added an opt-in feature for
AsCollectionandAsArrayObjectthat stores an actualNULL. - Tagged memoized cache: v13.33.0 added support for memoizing tagged caches. Related page: Cache.
- Schema information retrieval: v13.34.0 added
getColumn()to the Schema Builder. - Database testing: v13.34.0 lets
assertDatabaseCountaccept an array. - Collections: v13.30.0 added
chunkBy(), and v13.33.0 addedsolesupport for the higher order proxy.
Fixes to existing behavior
Beyond new features, the releases also include fixes that affect existing applications.- v13.31.0 fixed an issue where
lazy()andlazyById()ignoredlimit()andoffset(), and an issue where Context was not propagated to concurrent processes. - v13.32.0 fixed an issue where tag expiration was not synchronized on
touch()for Redis tagged caches. - v13.34.0 fixed an issue where retrying a multipart request in the HTTP client lost the contents of attached streams.
- v13.34.0 fixed an issue where the pivot
wherePivotBetween()was ignored bysync(),detach(), andupdateExistingPivot(). - v13.34.0 fixed an issue where
DatabaseLockswallowed deadlocks inside transactions.
Laravel Cloud
The official monthly blog post introduced the following changes.
Source: Laravel Cloud changelog. Related page: Introducing Laravel Cloud
Laravel Forge
- Redirect rule management: You can now bulk import rules from CSV and choose whether to append to or replace existing rules. CSV export and reordering rule execution by dragging are also supported.
- Server muting: You can now select servers to mute in your notification settings. Use it to keep notifications from staging and test environments out of your inbox.
Related articles
August 2026 updates
A look back at read-through disks, Scout search extensions, and the Managed Queues revamp in Cloud.
Mercure broadcasting
Review the setup for integrating Mercure with Laravel and Echo.