Laravel 14: Features, Breaking Changes &amp; PHP 8.4 | Mohamed Said        [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://www.msaied.com) [ Home ](https://www.msaied.com) [ Projects ](https://www.msaied.com/projects) [ Articles  ](https://www.msaied.com/articles) [ Certificates ](https://www.msaied.com/certificates) [ Contact ](https://www.msaied.com#contact-section) 

       [  ](https://github.com/EG-Mohamed)       

 [ Home ](https://www.msaied.com) [ Projects ](https://www.msaied.com/projects) [ Articles ](https://www.msaied.com/articles) [ Certificates ](https://www.msaied.com/certificates) [ Contact ](https://www.msaied.com#contact-section) 

  [ home ](https://www.msaied.com)    [ articles ](https://www.msaied.com/articles)    Laravel 14: New Features, Breaking Changes, and PHP 8.4 Requirement        On this page       1. [  Laravel 14: What We Know So Far ](#laravel-14-what-we-know-so-far)
2. [  New Features ](#new-features)
3. [  Route::query() ](#routequery)
4. [  $user-&gt;authorize() ](#user-gtauthorize)
5. [  Context for report() ](#context-for-report)
6. [  Storage::fake() for On-Demand Disks ](#storagefake-for-on-demand-disks)
7. [  orWhereKey() and Subqueries in whereKey() ](#orwherekey-and-subqueries-in-wherekey)
8. [  Breaking Changes ](#breaking-changes)
9. [  Queue Pause Methods Reordered ](#queue-pause-methods-reordered)
10. [  lazy() and chunk() No Longer Mutate the Builder ](#lazy-and-chunk-no-longer-mutate-the-builder)
11. [  findOr() With an Array of IDs ](#findor-with-an-array-of-ids)
12. [  Cache::has() and Cache::forget() With Arrays ](#cachehas-and-cacheforget-with-arrays)
13. [  MassPrunable Includes Soft-Deleted Models ](#massprunable-includes-soft-deleted-models)
14. [  Support Timeline ](#support-timeline)
15. [  Key Takeaways ](#key-takeaways)

  ![Laravel 14: New Features, Breaking Changes, and PHP 8.4 Requirement](https://cdn.msaied.com/688/2dfe8f11b0bef35c0ee6db912004209f.png)

 [  Laravel ](https://www.msaied.com/articles?category=laravel) [  PHP ](https://www.msaied.com/articles?category=php)  #Laravel 14   #PHP 8.4   #Breaking Changes   #New Features   #Laravel Release  

 Laravel 14: New Features, Breaking Changes, and PHP 8.4 Requirement 
=====================================================================

     21 Sep 2026      4 min read    ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said  

       Table of contents

  15 sections  

1. [  01   Laravel 14: What We Know So Far  ](#laravel-14-what-we-know-so-far)
2. [  02   New Features  ](#new-features)
3. [  03   Route::query()  ](#routequery)
4. [  04   $user-&gt;authorize()  ](#user-gtauthorize)
5. [  05   Context for report()  ](#context-for-report)
6. [  06   Storage::fake() for On-Demand Disks  ](#storagefake-for-on-demand-disks)
7. [  07   orWhereKey() and Subqueries in whereKey()  ](#orwherekey-and-subqueries-in-wherekey)
8. [  08   Breaking Changes  ](#breaking-changes)
9. [  09   Queue Pause Methods Reordered  ](#queue-pause-methods-reordered)
10. [  10   lazy() and chunk() No Longer Mutate the Builder  ](#lazy-and-chunk-no-longer-mutate-the-builder)
11. [  11   findOr() With an Array of IDs  ](#findor-with-an-array-of-ids)
12. [  12   Cache::has() and Cache::forget() With Arrays  ](#cachehas-and-cacheforget-with-arrays)
13. [  13   MassPrunable Includes Soft-Deleted Models  ](#massprunable-includes-soft-deleted-models)
14. [  14   Support Timeline  ](#support-timeline)
15. [  15   Key Takeaways  ](#key-takeaways)

       Laravel 14: What We Know So Far
-------------------------------

Laravel 14 is the next major release of the framework, expected in **Q1 2027**. It will require **PHP 8.4** as the minimum version — up from PHP 8.3 in Laravel 13 — largely because Symfony 8 itself requires PHP 8.4. The Laravel team has not published an official release date or final feature list yet. Everything below is sourced from the `master` branch of `laravel/framework` and may change before release.

---

New Features
------------

### Route::query()

PR [\#60655](https://github.com/laravel/framework/pull/60655) adds routing support for the HTTP `QUERY` method — a safe method that can carry a request body.

```php
Route::query('/search', function () {
    return request()->input('filter');
});

```

`Route::any()` includes `QUERY`, and the CSRF middleware treats it as a read request, the same as `GET`, `HEAD`, and `OPTIONS`.

### $user-&gt;authorize()

An `authorize()` method is being added to the `Authorizable` contract and trait. Unlike `$user->can()`, it throws an `AuthorizationException` on failure.

```php
// Laravel 13
Gate::forUser($user)->authorize('viewAny', Post::class);

// Laravel 14
$user->authorize('viewAny', Post::class);

```

### Context for report()

The `report()` helper now accepts an optional context array, making it easier to attach structured data to reported exceptions.

```php
try {
    $order->charge();
} catch (Throwable $e) {
    report($e, ['order_id' => $order->id]);
}

```

Note: the `ExceptionHandler` contract signature changes to `report(Throwable $e, array $context = [])`, so custom handlers that override `report()` will need updating.

### Storage::fake() for On-Demand Disks

`Storage::fake('ondemand')` will now intercept `Storage::build()` calls, letting you test on-demand disks with the same assertions as named disks.

### orWhereKey() and Subqueries in whereKey()

New `orWhereKey()` and `orWhereKeyNot()` methods are added, and all four `whereKey` variants now accept a subquery.

---

Breaking Changes
----------------

### Queue Pause Methods Reordered

The argument order for `Queue::pause()`, `Queue::pauseFor()`, `Queue::resume()`, and `Queue::isPaused()` changes: the **queue name** comes first, and the connection becomes an optional second argument.

```php
// Laravel 13
Queue::pause('redis', 'emails');

// Laravel 14
Queue::pause('emails');
Queue::pause('emails', 'redis');

```

### lazy() and chunk() No Longer Mutate the Builder

In Laravel 13, calling `lazy()` or `chunk()` modifies the underlying query builder, causing incorrect results if you reuse the builder afterward. Laravel 14 fixes this — `$query->count()` after a `lazy()` loop will return the correct total.

### findOr() With an Array of IDs

`Builder::findOr()` previously ignored its callback when passed an array of IDs. In Laravel 14, it behaves consistently with `findOrFail()` and calls the callback when any ID is missing.

### Cache::has() and Cache::forget() With Arrays

Both methods now correctly handle arrays of keys. `Cache::has(['a', 'b'])` returns `true` only when **every** key exists. `Cache::forget(['a', 'b'])` removes all listed keys and returns `true` only when all were removed.

### MassPrunable Includes Soft-Deleted Models

`MassPrunable` now adds `withTrashed()` to the prune query when the model uses soft deletes, matching the behavior of `Prunable`. If you rely on the old behavior, add `withoutTrashed()` to your `prunable()` query explicitly.

---

Support Timeline
----------------

| Version | PHP | Release | Bug Fixes Until | Security Fixes Until | |---------|-----|---------|-----------------|----------------------| | 12 | 8.2–8.5 | Feb 24, 2025 | Aug 13, 2026 | Feb 24, 2027 | | 13 | 8.3–8.5 | Mar 17, 2026 | Q3 2027 | Mar 17, 2028 | | 14 | 8.4+ | Q1 2027 | Q3 2028 | Q1 2029 |

---

Key Takeaways
-------------

- **PHP 8.4 is required** — plan your server upgrades accordingly.
- `Route::query()` brings native HTTP QUERY method support to routing.
- `$user->authorize()` simplifies authorization checks that should throw on failure.
- `report()` gains an optional context array; custom exception handlers need a signature update.
- Queue pause method argument order is reversed — audit any calls to `Queue::pause()` and related methods.
- `lazy()` / `chunk()` builder mutation is fixed; `Cache::has()` and `Cache::forget()` array handling is corrected.
- `MassPrunable` now includes soft-deleted models — review your `prunable()` queries.
- Use [Laravel Shift](https://laravelshift.com/) to automate the upgrade when Laravel 14 ships.

---

*Source: [What We Know About Laravel 14 — Laravel News](https://laravel-news.com/laravel-14)*

 Found this useful?

          [  ](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.msaied.com%2Farticles%2Flaravel-14-new-features-breaking-changes-and-php-84-requirement&text=Laravel+14%3A+New+Features%2C+Breaking+Changes%2C+and+PHP+8.4+Requirement) [  ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.msaied.com%2Farticles%2Flaravel-14-new-features-breaking-changes-and-php-84-requirement) 

 Frequently Asked Questions 
----------------------------

  3 questions  

     Q01  When is Laravel 14 expected to be released?        Laravel 14 is expected in Q1 2027, following Laravel's standard annual release cycle. No official release date has been announced yet. 

      Q02  What PHP version does Laravel 14 require?        Laravel 14 requires PHP 8.4 as the minimum version, up from PHP 8.3 in Laravel 13. This change is driven by the Symfony 8 dependency, which also requires PHP 8.4. 

      Q03  What are the most important breaking changes in Laravel 14 to prepare for?        Key breaking changes include: the argument order for Queue pause methods is reversed (queue name first, connection second); Cache::has() and Cache::forget() now correctly handle arrays; MassPrunable includes soft-deleted models; and lazy()/chunk() no longer mutate the query builder. Custom exception handlers that override report() also need a new $context parameter. 

  Continue reading

 More Articles 
---------------

 [ View all    ](https://www.msaied.com/articles) 

 [ ![Building a Laravel Package: Service Providers, Auto-Discovery, and Config Merging](https://cdn.msaied.com/687/e53f819c8f897c1ad12a1df0661a18f7.png) laravel packages service-providers 

### Building a Laravel Package: Service Providers, Auto-Discovery, and Config Merging

Learn how to build a production-ready Laravel package from scratch — covering service provider design, auto-di...

  ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said 

 21 Sep 2026     1 min read  

  Read    

 ](https://www.msaied.com/articles/building-a-laravel-package-service-providers-auto-discovery-and-config-merging-4) [ ![Filament v5.8.3 Released: Bug Fixes, MFA Improvements, and New Translations](https://cdn.msaied.com/686/d3b71a4945fdbbb48cfac7ccb98e7f0b.png) filament laravel livewire 

### Filament v5.8.3 Released: Bug Fixes, MFA Improvements, and New Translations

Filament v5.8.3 ships with targeted bug fixes covering MFA password checks, FileUpload audio previews, query b...

  ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said 

 20 Sep 2026     3 min read  

  Read    

 ](https://www.msaied.com/articles/filament-v583-released-bug-fixes-mfa-improvements-and-new-translations) [ ![Filament v4.13.3 Released: Bug Fixes, MFA Improvements, and New Translations](https://cdn.msaied.com/685/d166e49051b110828607993a8719536e.png) filament laravel php 

### Filament v4.13.3 Released: Bug Fixes, MFA Improvements, and New Translations

Filament v4.13.3 ships with a dozen targeted fixes covering MFA password checks, FileUpload audio previews, qu...

  ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)  Mohamed Said 

 20 Sep 2026     3 min read  

  Read    

 ](https://www.msaied.com/articles/filament-v4133-released-bug-fixes-mfa-improvements-and-new-translations) 

   [  ![Mohamed Said](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png)   Mohamed Said Laravel Backend Engineer  ](https://www.msaied.com)Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

Explore

- [Home](https://www.msaied.com)
- [Projects](https://www.msaied.com/projects)
- [Articles](https://www.msaied.com/articles)
- [Certificates](https://www.msaied.com/certificates)
- [Contact](https://www.msaied.com#contact-section)

Connect

- [   hello@msaied.com ](mailto:hello@msaied.com)
- [   +20 109 461 9204 ](tel:+201094619204)

© 2026 Mohamed Said. All rights reserved.

 [  ](https://github.com/EG-Mohamed) [  ](https://www.linkedin.com/in/msaiedm/) [  ](https://wa.me/201094619204) [  ](mailto:hello@msaied.com) [  ](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
