Laravel Open Source Changelog (July 2025)
New updates and improvements to Laravel's open source products.
Laravel Framework 12.x
Added Verbose Output for queue:work
Pull requests by @seriquynh & @amirhshokri
php artisan queue:work --verbose
// App\Jobs\UrgentAction 85 high
// App\Jobs\NormalAction 84 defaultWith --verbose, you’ll now see queue names alongside each job and job ID, making multi-queue debugging straightforward and saving you time when tracing issues.
Uri Implements JsonSerializable
Pull request by @devajmeireles
echo json_encode(new Uri('/path?x=1'));
// "http://localhost:8000/path?x=1"This release fixes a serialization bug, properly converting the URI to a string when serializing a larger JSON object that contains the URI as a value.
Added doesntStartWith() & doesntEndWith() Str Methods
Pull request by @balboacodes
str('apple')->doesntStartWith('b'); // true
str('apple')->doesntEndWith('e'); // falseThe inverse of startsWith/endsWith, these new methods allow you to fluently test for starting and ending characters in your string.
Closure Support in pluck()
Pull request by @ralphjsmit
$users->pluck(fn($u) => $u->email, fn($u) => strtoupper($u->name));You can now dynamically generate keys and values via callbacks. Instead of mapping then plucking, you get a single, flexible method that reduces steps and keeps intent clear.
Pint
Added --parallel Option
Pull request by @nunomaduro
./vendor/bin/pint --parallelBy leveraging PHP CS Fixer’s parallel runner, Pint now formats files concurrently. On large codebases that once took minutes, you’ll see results in seconds, speeding up both local workflows and CI pipelines for a clear quality of life win.
Telescope
Migrated to Vite
Pull request by @nckrtl
Telescope’s frontend now uses Vite instead of Mix. Asset builds finish faster, hot-reloads are more reliable, and you benefit from a modern toolchain without changing your workflow.
Octane
FrankenPHP’s File Watcher
Pull request by @kohenkatz
Octane now relies on FrankenPHP’s native file watcher for reloading the server on file changes. This removes the NodeJS dependency and eases the local development process significantly.
Inertia
Reset Form State and Clear Errors with a Single Method
Pull request by @pascalbaljet
const form = useForm({ name: "", email: "" });
// Instead of:
form.reset();
form.clearErrors();
// You can now:
form.resetAndClearErrors();You can now concisely reset all fields and errors in one go, bringing your form back to square one.
Prevent Minifying JavaScript Builds and Test Apps
Pull request by @pascalbaljet
Inertia no longer distributes minified builds, aligning it with the strategy of other popular libraries. This makes debugging more straightforward and allows for local patching if the need arises.