> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# September 2026 Laravel updates

> The September 2026 updates to Laravel 13 and the official products. Covers building AI providers at runtime, Scout search extensions, Mercure, transfers between disks, queue management, and isolated preview environments in Cloud.

September 2026 broadened the options for per-tenant AI configuration and search engines, and added features that support storage, queue, and database operations. Laravel Cloud introduced preview environments that isolate resources for each pull request, along with request metrics that work without any additional packages.

This page records the main changes, based on the official blog post "Laravel September product updates" published on October 2 and the official Laravel 13 release notes published in September. The Framework section also includes changes to official packages such as the AI SDK, Scout, and Echo. Don't judge updates to these packages by the Framework version number alone.

Sources:

* [Laravel September product updates](https://laravel.com/blog/laravel-september-product-updates)
* [Laravel Framework changelog](https://laravel.com/framework/docs/changelog)
* [Laravel Framework v13.30.0](https://github.com/laravel/framework/releases/tag/v13.30.0)
* [Laravel Framework v13.30.1](https://github.com/laravel/framework/releases/tag/v13.30.1)
* [Laravel Framework v13.31.0](https://github.com/laravel/framework/releases/tag/v13.31.0)
* [Laravel Framework v13.32.0](https://github.com/laravel/framework/releases/tag/v13.32.0)
* [Laravel Framework v13.33.0](https://github.com/laravel/framework/releases/tag/v13.33.0)
* [Laravel Framework v13.34.0](https://github.com/laravel/framework/releases/tag/v13.34.0)

## Laravel Framework and official packages

### Building per-tenant AI providers at runtime

The AI SDK's `Ai::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](/en/ai-sdk).

Source: [Build AI providers from runtime configuration](https://laravel.com/framework/docs/changelog#september-2026-build-ai-providers-from-runtime-configuration)

### Typesense and Meilisearch search extensions in Scout

Scout's Typesense engine now supports semantic search with `semantic()` 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](/en/scout) and the [search guide](/en/search).

Sources: [Semantic and hybrid search for Typesense](https://laravel.com/framework/docs/changelog#september-2026-semantic-and-hybrid-search-for-typesense), [Native Meilisearch embedders](https://laravel.com/framework/docs/changelog#september-2026-use-meilisearchs-native-embedders-with-scout)

### Real-time communication with Mercure

Laravel Echo gained a Mercure connector. It uses the browser's standard `EventSource` 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](/en/advanced/mercure-broadcasting).

Sources: [Mercure broadcasting in Laravel Echo](https://laravel.com/framework/docs/changelog#september-2026-mercure-broadcasting-in-laravel-echo), [v13.32.0](https://github.com/laravel/framework/releases/tag/v13.32.0), [v13.33.0](https://github.com/laravel/framework/releases/tag/v13.33.0)

### Copying and moving files between disks

v13.32.0 added `copyToDisk()` 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](https://laravel.com/framework/docs/changelog#september-2026-copy-or-move-files-between-disks), [v13.32.0](https://github.com/laravel/framework/releases/tag/v13.32.0). Related page: [Filesystem](/en/filesystem)

### Improved queue measurement, stopping, and retries

September's releases gradually strengthened visibility into queue state and control over workers.

| Release | Main changes |
| - | - |
| v13.30.0 | Display of the reason `queue:work` stopped, `totalXSize`-style methods for Cloud Queue, and `createPayloadUsing` support in the Queue Manager. |
| v13.30.1 | Connection and queue information added to the `WorkerStopping` event. |
| v13.31.0 | Queue `totalSize()`, the `JobInterrupted` event, and connection and queue information added to `WorkerStopping` when a worker is terminated. Queue operations on Redis Cluster were also fixed. |
| v13.32.0 | Enums can now be used with the queue pause and resume methods. `isManagedQueue` was added to the Cloud Manager. |
| v13.33.0 | An option to keep the worker running when a job times out, improved retries for Cloud jobs, and skipping of non-retryable batches in `queue:retry-batch`. |
| v13.34.0 | Processing time added to the `JobProcessed` event, job notification before timeout, a `--queue` option for `queue:flush`, and an option to count worker crashes toward `maxExceptions`. |

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](https://github.com/laravel/framework/releases) above. For the basics, see the [queue guide](/en/queues), and for job-side control, see the [advanced job control guide](/en/advanced/queue-job-control).

### 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](/en/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 `AsCollection` and `AsArrayObject` that stores an actual `NULL`.
* **Tagged memoized cache**: v13.33.0 added support for memoizing tagged caches. Related page: [Cache](/en/cache).
* **Schema information retrieval**: v13.34.0 added `getColumn()` to the Schema Builder.
* **Database testing**: v13.34.0 lets `assertDatabaseCount` accept an array.
* **Collections**: v13.30.0 added `chunkBy()`, and v13.33.0 added `sole` support 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()` and `lazyById()` ignored `limit()` and `offset()`, 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 by `sync()`, `detach()`, and `updateExistingPivot()`.
* v13.34.0 fixed an issue where `DatabaseLock` swallowed deadlocks inside transactions.

This list does not cover every change in September. For minor fixes and dependency updates, check each release note.

## Laravel Cloud

The official monthly blog post introduced the following changes.

| Feature | Update |
| - | - |
| Isolated preview environments | Each pull request now gets new resources, improving the setup so previews don't reference production resources. With Flex sizes, they hibernate between reviews and are deleted when the PR is merged or closed. The Deployments screen also shows the branch, the latest commit, and a link to the preview. |
| Request metrics | The Requests tab in Monitoring now shows request counts, response codes, and per-page processing time. You can filter by domain and time range, with no package additions or code changes required. |
| Managed database users | You can create additional users on a database cluster and grant them read-only or read-write access to only the databases they need. Supports Laravel MySQL, RDS MySQL, and RDS Postgres. |
| Automatic MySQL storage expansion | When Laravel MySQL storage usage reaches 90%, capacity is increased by 50%. Expansion happens while the database stays online, and you can set a maximum size or disable it per database. |
| Log drains | On the Enterprise plan, you can forward application logs in real time to your own Amazon S3 bucket. Use it for long-term retention or integration with your existing monitoring stack. |

Source: [Laravel Cloud changelog](https://laravel.com/cloud/docs/changelog). Related page: [Introducing Laravel Cloud](/en/blog/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.

Source: [Laravel Forge changelog](https://laravel.com/forge/docs/changelog)

## Related articles

<Columns cols={2}>
  <Card title="August 2026 updates" icon="calendar" href="/en/blog/changelog/202608">
    A look back at read-through disks, Scout search extensions, and the Managed Queues revamp in Cloud.
  </Card>

  <Card title="Mercure broadcasting" icon="tower-broadcast" href="/en/advanced/mercure-broadcasting">
    Review the setup for integrating Mercure with Laravel and Echo.
  </Card>
</Columns>


## Related topics

- [March 2026 Laravel updates](/en/blog/changelog/202603.md)
- [July 2026 Laravel updates](/en/blog/changelog/202607.md)
- [April 2026 Laravel updates](/en/blog/changelog/202604.md)
- [May 2026 Laravel updates](/en/blog/changelog/202605.md)
- [June 2026 Laravel updates](/en/blog/changelog/202606.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.