<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6" -->

---
title: What We Know About Laravel 14 | daily.dev
description: Laravel 14, expected in Q1 2027, will require PHP 8.4 as its minimum version because Symfony 8 requires it, and will follow the standard support cycle with bug...
canonical: https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: What We Know About Laravel 14 | daily.dev
og:description: Laravel 14, expected in Q1 2027, will require PHP 8.4 as its minimum version because Symfony 8 requires it, and will follow the standard support cycle with bug...
og:url: https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6
og:image: https://api.daily.dev/og/posts/zmVW8ALI6.png
og:image:alt: What We Know About Laravel 14
og:image:width: 1200
og:image:height: 630
og:locale: en
---

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

# What We Know About Laravel 14

**[Laravel News](https://daily.dev/sources/ln)** · 6 min read · 50 upvotes · 5 comments

## Summary

Laravel 14, expected in Q1 2027, will require PHP 8.4 as its minimum version because Symfony 8 requires it, and will follow the standard support cycle with bug fixes through Q3 2028 and security updates through Q1 2029. Coming from the master branch (subject to change before release) are new features like Route::query() for the HTTP QUERY method, a $user->authorize() method, optional context arrays for report(), Storage::fake() support for on-demand disks, and consolidated whereKey()/whereKeyNot() methods with subquery support. Several breaking changes are also planned: queue pause/resume methods now take the queue name first instead of the connection, lazy() and chunk() will stop mutating the query builder, findOr() will properly handle arrays of IDs, Cache::has()/forget() will correctly handle arrays, and MassPrunable will include soft-deleted models in pruning, matching Prunable's existing behavior.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://laravel-news.com/laravel-14>

## Questions this post answers

### What PHP version will Laravel 14 require as a minimum?

Laravel 14 requires PHP 8.4 as its minimum supported version, up from Laravel 13's PHP 8.3 minimum. This increase comes because Symfony 8, a dependency of Laravel, requires PHP 8.4 as a minimum. Laravel 14 is expected to release around Q1 2027 with bug fixes through Q3 2028 and security updates through Q1 2029.

_Track Laravel and PHP version requirement changes like this on daily.dev before planning an upgrade._

### How do Queue::pause() and Queue::pauseFor() argument order change in Laravel 14?

In Laravel 14, the per-queue pause methods take the queue name as the first argument and the connection as an optional second argument, reversing Laravel 13's order where the connection came first. For example, Queue::pause('redis', 'emails') in Laravel 13 becomes Queue::pause('emails') with the default connection, or Queue::pause('emails', 'redis') to specify a connection.

_Developers upgrading queue code between Laravel versions can follow breaking changes like this on daily.dev._

### Why does calling count() after lazy() or chunk() return the wrong number in Laravel 13?

In Laravel 13, lazy() and chunk() mutate the underlying query builder as they paginate through results, so reusing the same builder afterward for a count() call returns 0 instead of the full row count. This is fixed in Laravel 14, where both methods no longer mutate the builder, so a subsequent count() call returns the correct total.

_Anyone debugging Eloquent query builder quirks can watch for fixes like this on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@ezee** · 5 upvotes

> Was just wondering when 14 would be released, dailydev doesn't disappoint

**@ristotoldsep** · 0 upvotes

> If that `MassPrunable` change lands, it’s going straight on my upgrade checklist.

**@pdfopsdev** · 0 upvotes

> been bitten by chunk() mutating the query builder mid-loop before, glad 14 finally fixes that. the queue pause/resume arg reorder is going to quietly break a bunch of code that calls it positionally though.

**@sam7work** · 0 upvotes

> well, there will be some breaking changes this time, so , yeah, not liking that part for sure

**@agustinbarrientos** · 0 upvotes

> The upgrade tests should include two connections that both have an email queue. A successful pause command could still stop the wrong worker.

## Similar posts on daily.dev

- [Route::query\(\) and Model defaults\(\) in Laravel 13.35](https://daily.dev/posts/route-query-and-model-defaults-in-laravel-13-35-5rzi2uxwc) · Laravel News · 5 upvotes · 0 comments
- [Laravel August product updates](https://daily.dev/posts/laravel-august-product-updates-g7aslygtw) · Laravel · 0 upvotes · 0 comments

---

Tags: [#php](https://daily.dev/tags/php), [#laravel](https://daily.dev/tags/laravel)

[View this post on daily.dev](https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"What We Know About Laravel 14","url":"https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6"},"datePublished":"2026-09-21T13:29:12.246Z","dateModified":"2026-09-21T13:29:34.431Z","description":"Laravel 14, expected in Q1 2027, will require PHP 8.4 as its minimum version because Symfony 8 requires it, and will follow the standard support cycle with bug...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8f74b98fa08b79dd4088aab3955e886c?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8f74b98fa08b79dd4088aab3955e886c?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Laravel News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Laravel News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/ln","url":"https://daily.dev/sources/ln"},"commentCount":5,"discussionUrl":"https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":50},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":5}],"keywords":"php,laravel","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Laravel News","item":"https://daily.dev/sources/ln"},{"@type":"ListItem","position":3,"name":"What We Know About Laravel 14"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6","comment":[{"@type":"Comment","text":"Was just wondering when 14 would be released, dailydev doesn’t disappoint","datePublished":"2026-09-21T14:48:27.804Z","url":"https://daily.dev/posts/zmVW8ALI6#c-n2MrcMIXN","author":{"@type":"Person","name":"E","url":"https://daily.dev/ezee","image":"https://media.daily.dev/image/upload/s--fCfktlbR--/f_auto/v1767451916/avatars/avatar_93JdfDmXtcEWkGXSGC1ne?_a=BAMAK+ZW0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":5}},{"@type":"Comment","text":"If that MassPrunable change lands, it’s going straight on my upgrade checklist.","datePublished":"2026-09-22T07:29:46.203Z","url":"https://daily.dev/posts/zmVW8ALI6#c-Iqo5Uaorr","author":{"@type":"Person","name":"Risto Tõldsep","url":"https://daily.dev/ristotoldsep","image":"https://lh3.googleusercontent.com/a/ACg8ocLDWc6mZn0JwNmXXw6WY0L_HJ6pegzRttooC5VgtXESHSj3MNYx=s96-c"}},{"@type":"Comment","text":"been bitten by chunk() mutating the query builder mid-loop before, glad 14 finally fixes that. the queue pause/resume arg reorder is going to quietly break a bunch of code that calls it positionally though.","datePublished":"2026-09-22T18:03:07.859Z","url":"https://daily.dev/posts/zmVW8ALI6#c-tiCQuFDYj","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"}},{"@type":"Comment","text":"well, there will be some breaking changes this time, so , yeah, not liking that part for sure","datePublished":"2026-09-22T18:37:02.315Z","url":"https://daily.dev/posts/zmVW8ALI6#c-5oibDnGgA","author":{"@type":"Person","name":"Sam","url":"https://daily.dev/sam7work","image":"https://lh3.googleusercontent.com/a/ACg8ocJGz1oRsDNA5jHaL8S_Dm_S69r5oVuMT_253w26IC3wacnjq1U=s96-c"}},{"@type":"Comment","text":"The upgrade tests should include two connections that both have an email queue. A successful pause command could still stop the wrong worker.","datePublished":"2026-09-23T22:23:04.433Z","url":"https://daily.dev/posts/zmVW8ALI6#c-AeuRuK26V","author":{"@type":"Person","name":"Agustin Barrientos","url":"https://daily.dev/agustinbarrientos","image":"https://media.daily.dev/image/upload/s--5ayxQnqn--/f_auto/v1788281802/avatars/avatar_wQYYVe5Tbj0NJ7C7qPoa8?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/what-we-know-about-laravel-14-zmvw8ali6#faq","mainEntity":[{"@type":"Question","name":"What PHP version will Laravel 14 require as a minimum?","acceptedAnswer":{"@type":"Answer","text":"Laravel 14 requires PHP 8.4 as its minimum supported version, up from Laravel 13's PHP 8.3 minimum. This increase comes because Symfony 8, a dependency of Laravel, requires PHP 8.4 as a minimum. Laravel 14 is expected to release around Q1 2027 with bug fixes through Q3 2028 and security updates through Q1 2029. Track Laravel and PHP version requirement changes like this on daily.dev before planning an upgrade."}},{"@type":"Question","name":"How do Queue::pause() and Queue::pauseFor() argument order change in Laravel 14?","acceptedAnswer":{"@type":"Answer","text":"In Laravel 14, the per-queue pause methods take the queue name as the first argument and the connection as an optional second argument, reversing Laravel 13's order where the connection came first. For example, Queue::pause('redis', 'emails') in Laravel 13 becomes Queue::pause('emails') with the default connection, or Queue::pause('emails', 'redis') to specify a connection. Developers upgrading queue code between Laravel versions can follow breaking changes like this on daily.dev."}},{"@type":"Question","name":"Why does calling count() after lazy() or chunk() return the wrong number in Laravel 13?","acceptedAnswer":{"@type":"Answer","text":"In Laravel 13, lazy() and chunk() mutate the underlying query builder as they paginate through results, so reusing the same builder afterward for a count() call returns 0 instead of the full row count. This is fixed in Laravel 14, where both methods no longer mutate the builder, so a subsequent count() call returns the correct total. Anyone debugging Eloquent query builder quirks can watch for fixes like this on daily.dev."}}]}
```

