Laravel published framework version 13.37.0 on 16 October for the 13.x branch. The release fixes a race condition affecting jobs that combine onOneServer() with withoutOverlapping(). Limiter tests now respect faked Sleep when calculating block() timeouts.

getForeignKeys() performs better on MariaDB and MySQL servers with many databases. Eloquent corrects has() and withCount() for self-referencing one-of-many relations. Self-referencing HasOneThrough existence queries now use the intermediate table alias. Collection types are also corrected for whereBelongsTo() and whereAttachedTo().

Eloquent cursor() avoids creating unnecessary model instances. Nested JSON:API relationships no longer cause N+1 queries. incrementOrCreate() now works on through relations. restore() works with soft-delete queries that use joins. Eloquent Collection findOrFail() handles a model instance correctly. Cached Attribute accessors no longer return stale values after an attribute changes.

withWhereHas() callbacks can select columns. Queries with joins qualify the default latest() and oldest() column. Through-relation attribute columns are qualified in firstOrNew() and firstOrCreate(). The same applies to createOrFirst(). JSON:API resource attributes now handle mergeWhen() correctly.

Queue handling releases a unique lock when pushing a job fails. Queued listener locks are released after a failed push, and Queue::fake() releases unique queued-listener locks. queue:failed accepts the new --queue option. queue:forget accepts multiple IDs. ScheduledTaskFailed now includes runtime.

FTP and SFTP disks add the detect_mime_type_using_path option. The Image API supports JPEG XL (JXL). RedirectResponse can implement Responsable. InvokableComponentVariable receives a generic return type.

Rule::numeric() gains a strict option. Rule::when() and Rule::unless() accept Stringable parameter types. Encrypted object and collection casts no longer remain dirty incorrectly. DynamoDbStore::many() now returns values under the correct keys for numeric keys.

Skipped migrations are no longer reported as pending by migrate:status. Teardown warnings are suppressed when dead connections are disconnected. The release also improves exception reporting.