Sync Laravel updates: #58255 → #58336 - #576
Conversation
Document resetting an email verification status after an address change, and describe the not-between and OR variants alongside havingBetween. These APIs and the later MustVerifyEmail contract addition already match the current Laravel source; no runtime changes are necessary. Port both upstream human-readable comment corrections in the console traits. Preserve Hypervel's native property types and existing behavior. Upstream: laravel/framework#58255 laravel/framework#58701 laravel/framework#58259 laravel/framework#58266 Compared complete PR diffs with Laravel 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2. Checked Laravel docs first; the public usage explanations were absent. Formatting and diff checks pass. No runtime tests or static analysis needed for prose and comments.
Reconcile Laravel framework PRs #58262, #58283 and #58289 against 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2. Readable environment-file encryption, format detection and all applicable upstream tests are already present, as are eager/lazy collection argument guards and exception docs. Complete the remaining Hypervel adaptations: natively type encryption tests and their tampered-payload provider, use Hypervel fixture names in both environment commands' tests, link the encryption package's existing documentation and upstream, and restore the inherited split description. Preserve atomic file replacement, permissions, cancellation behavior, existing regression assertions, collection generic metadata and laziness. This changes no production behavior and adds no tests. All three affected test files pass. Scoped PHP-CS-Fixer and git diff checks pass; production changes are documentation only. laravel/framework#58262 laravel/framework#58283 laravel/framework#58289
Restore all seven current upstream filesystem fake tests covering missing files, inherited throw settings, explicit overrides, and string-backed enum disks. Merge them into the existing StorageFakeTest so integer-zero enum, parallel-token, and temporary-URL coverage remain alongside the upstream cases. Use Hypervel's config helper, typed methods, and configured camelCase PHPUnit method names. Complete the current AsBinary and BinaryCodec exception annotations and required method/provider titles. Narrow the null/blank test parameters to nullable strings. Preserve Symfony UUID conversion, exact binary identifier recognition, reusable PDO streams, worker-state cleanup, and list-shaped format names. No production executable code changes. Add the filesystem documentation link and put its upstream reference after the existing differences section without changing those explanations. Laravel PRs: laravel/framework#58254 laravel/framework#58287 laravel/framework#53779 Port source: Laravel 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2. The binary exception annotations incorporate the relevant current changes from #59016; its broader surface remains to be reconciled separately. Validation: all three changed test files pass; scoped PHP CS Fixer and whitespace checks pass. The filesystem tests exercise real local-adapter failures and overrides rather than only inspecting configuration.
Complete the supported subquery surface introduced by Laravel PRs #58290 and #58441. Both implementation bodies and their original regression tests were already present, but Hypervel's eight native column parameter unions rejected closures before the existing subquery parser could execute them. Add Closure to all eight between/between-columns signatures and their existing detailed annotations. Keep query construction, binding order and all method bodies unchanged: createSub already executes closures against a fresh query and retains only the resulting SQL and bindings. Extend the two existing forwarding tests with closure inputs alongside builder inputs, preserving their full SQL and binding assertions. Document the public subquery argument with a correlated example; the pinned Laravel docs do not yet describe it. Upstream: laravel/framework#58290 laravel/framework#58441 Source: 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2 Docs: 2914ba0b06c6be40c2f1f992555853f6266707d6 Validation: full DatabaseQueryBuilderTest, scoped PHP-CS-Fixer, both composer analyse passes, and git diff --check. Pre-fix probes reproduced TypeError for all eight closure inputs; the regression assertions now verify their SQL and binding order.
Port the four missing current Laravel validation cases for escaped-dot keys through constructor rules, appendRules and sometimes, and for successive pipe-separated appended rules. The implementation already handles these paths; preserve Hypervel's placeholder encoding, wildcard expansion and cached lookup invalidation. Restore addRules' upstream internal annotation and the resource collector's LogicException annotation. Correct two misleading upstream comments, and document appendRules at the public manually-created-validator surface. Resource collection conversion and wrapping coverage is already present. Correct the two inherited Request::create fixtures that reverse the URI and HTTP method, and complete the touched method/provider docblocks. Preserve every resource dataset and assertion. No production method body or native signature changes. Upstream: laravel/framework#58291 laravel/framework#58304 laravel/framework#58299 laravel/framework#58302 Source: 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2 Docs: 2914ba0b06c6be40c2f1f992555853f6266707d6 Validation: each changed test file passes (ValidationValidatorTest, ResourceTest and ResourceCollectionTest); scoped configured PHP-CS-Fixer and git diff --check pass. The final collection-stub docblock correction was followed by another successful ResourceCollectionTest run.
Bring the remaining tests and documentation for Laravel #58317, #58288 and #58311 into parity with framework source 01d008c9b5f32cb7c5e50a9a22273113d810b2a2 and docs source 2914ba0b06c6be40c2f1f992555853f6266707d6. Port the five strict empty-array assertions and correct four array-filtering examples to show preserved keys. Replace three mislabeled SELECT assertions with actual insert, update and delete calls through the cloned connection in pretend mode. Assert the interpolated SQL emitted by Hypervel and retain schema and original-connection isolation coverage. Type the local test helpers and remove stale Laravel annotations. Clarify that isolated Blade includes still receive shared view data. The array examples, duplicated SELECT checks and overly restrictive Blade wording also exist upstream; runtime behavior remains unchanged. Validated both affected PHPUnit classes immediately, their combined focused ParaTest run, scoped PHP-CS-Fixer and diff checks. Upstream: laravel/framework#58317 laravel/framework#58288 laravel/framework#58311 laravel/docs#10999
Port the current migration repository record shapes, batch maps, creation and connection resolver callbacks, Blueprint callbacks, schema return inference, and MySQL DDL lock value annotations. Include the later fixes for malformed unions and incorrect array/object annotations rather than reproducing the original typing defects. Creation hooks accept a nullable table name for generic migrations. Keep the prospective migration class name typed as string: the caller checks whether that class exists. Preserve coroutine connection routing and physical-session foreign-key suppression without changing runtime APIs. Document the creation hook's worker lifetime and share schema defaults with the existing static reset through typed constants. Correct the inherited MySQL DDL example: ALGORITHM=INSTANT permits only LOCK=DEFAULT. Keep the upstream compiler tests that verify clause forwarding. Remove unsupported SQL Server-only definition metadata. Add type fixtures for public repository records, callback inference, schema refinements, and exact first-class callable lock signatures. Schema facade generation remains unchanged because the generator simplifies these refinements; no manual facade changes are included. Upstream source: laravel/framework 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2. laravel/framework#58293 laravel/framework#58561 laravel/framework#58624 laravel/framework#58638 laravel/framework#59875 laravel/framework#59876 laravel/framework#59887 Verified with full source/type analysis, focused migration and schema tests, formatting, and facade-generation lint.
Schema::blueprintResolver() configured a throwaway builder, so subsequent schema operations silently ignored the callback. Keep the facade default on the existing SchemaProxy and apply it to each freshly selected builder. Route Schema::connection() through that proxy as well, so named connections and usingConnection() receive the same configuration. Retain only the boot-time callback, never a builder or its pooled connection. Builder::blueprintResolver() stays instance-local, allowing a retained builder to override the default without affecting other builders. Document the default registrar's worker lifetime. The defect also exists in Laravel, whose Schema facade disables caching. Its earlier static Builder fix was introduced and reverted in: laravel/framework#55607 laravel/framework#55690 This fix preserves local builder state instead of restoring that design. Current callback types already incorporate: laravel/framework#55687 laravel/framework#56392 Upstream reference: 01d008c9b5f32cb7c5e50a9a22273113d810b2a2. Approved testing difference: Schema::connection() now honors a mocked Schema facade instead of bypassing it for a real builder. Such tests must configure the connection expectation; ordinary application calls retain their API and connection selection. Add two real-application SQLite regressions for resolver arguments, default/named/temporary connection selection, create/alter callbacks, and local override isolation. Both fail before the fix and pass afterward. Focused database tests, full PHPStan analysis, formatting and Schema facade lint pass.
Restore Laravel's scalar-route and string-backed enum registration tests, including both direct and array registration. Preserve Hypervel's existing unit-enum and integer-backed enum coverage. Correct the listener, broadcast, scheduler and mail routing tests so they verify the selected connection. QueueFake::connection() ignores its argument, so chaining it before assertPushedOn() never tested connection selection and even concealed a queue-name typo in the scheduler test. Observe the factory call while preserving each test's queue and dispatch assertions. Explain the partial fakes beside their construction to prevent losing this coverage. Restore the current Laravel documentation's scalar queue-only example and Concerns namespace. Production behavior and public APIs are unchanged. Upstream framework: laravel/framework#58094 laravel/framework#59711 laravel/framework#60402 Source: 01d008c9b5f32cb7c5e50a9a22273113d810b2a2 Upstream documentation: laravel/docs#11025 laravel/docs#11348 Source: 2914ba0b06c6be40c2f1f992555853f6266707d6 Validation: each affected class passes, as does focused ParaTest including unique-job scheduling. Wrong-connection probes fail in all four corrected tests. Scoped formatting and diff checks pass.
Unconfigured connections bypassed session synchronization even after a physical transaction or cleanup failure marked their PDO state unknown. Subsequent reads and writes could continue inside a transaction whose rollback had failed. Keep the allocation-free fast path only for known sessions. Reuse the existing synchronization path to replace an unknown PDO outside transactions and reject its use inside an active transaction. Raw PDO access and physical cleanup remain unchanged; no additional state or recovery mechanism is introduced. Extend the existing write replacement, read replacement and active-transaction tests to run with and without registered configurators. Preserve the no-allocation regression for healthy unconfigured connections. Found while investigating Laravel framework PR laravel/framework#58978; this commit fixes the independent Hypervel session-state defect and does not port reservation recovery. Validation: focused database transaction/session tests, full source and type-fixture analysis, PHP-CS-Fixer and diff checks pass.
Port Laravel framework PRs #58978 and #59718 from the 13.x source at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2: laravel/framework#58978 laravel/framework#59718 Fail records that cannot be reserved so one invalid job cannot block the queue indefinitely. Recover only after the reservation transaction has unwound to its original depth. Exclude concurrency failures, lost connections and coroutine cancellation, and clear the recovery candidate after successful marshalling so commit or completion-listener failures do not delete a valid job. Preserve the original reservation error when ordinary failure handling also throws, while propagating cancellation. Widen attempts to unsignedSmallInteger in the generated jobs migration and Testbench skeleton. The upstream DatabaseJob record typing and Controller formatting changes are already present. Correct an adjacent transaction defect: nested concurrency failures lost their SQLSTATE and PDO errorInfo when wrapped in DeadlockException. That prevented outer transactions from retrying and misclassified valid queued jobs as invalid. Preserve the driver metadata while retaining the existing exception constructor arguments and defaults, adding string-code support. Add focused coverage for blocked queues, nested recovery, transient errors, cancellation, commit-listener failures, failed physical rollback and nested transaction retry with preserved error metadata. All recovery state is local to the invocation; no extra queries run on successful reservations. Validation: changed test files, focused queue/database ParaTest suites, Testbench package-mode suite, full source and type-fixture PHPStan, formatting and whitespace checks pass. Independent review also verified the full database package and the original nested-failure reproduction.
…ations Port laravel/framework#61188 from Laravel 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2, including all applicable upstream tests and current forwarding documentation. Add Queue::forward with enum-aware boot-time registration. Resolve forwarded connections after dynamic listener, broadcast and notification queue selection; retain explicit connection precedence and class-route fallback. Adapt storage boundaries for Database, Redis, Beanstalkd and SQS, including FIFO validation. Failover applies only its own connection-scoped forwards before delegation, leaving omitted defaults and unscoped forwarding to each storage driver. Correct upstream repeated forwarding during database reservation/release and Redis global size calculations. Jobs retain logical queue names while storage operations resolve them once. Redis totals and inspection use discovered physical keys directly, preserving pinned pooled connections, Cluster hash tags and pre-forward backlogs. Global totals no longer call per-queue size overrides; allQueueNames remains the discovery extension point. Correct Horizon clearing to purge the forwarded destination on the selected connection, preserving records for live jobs on separate storage. Add optional connection filtering to the existing purge operation and its repository contract. Retain one-argument queue-wide purge. Non-Horizon clearable drivers do not purge Horizon records, and unsupported drivers fail before any purge. When connection aliases share physical storage, clearing removes all queued jobs but leaves other aliases' dashboard records until expiry/trim; document and test this deliberate tradeoff without adding draining or temporary-key machinery. Regenerate affected facades and document forwarding, default-queue semantics, worker queue lists, draining existing backlogs and clear behavior. Add focused regressions for dynamic selection, zero identifiers, failover delegation, reservation/release chains, physical totals and Horizon metadata isolation. Validation: full source/type PHPStan, formatting and facade lint; affected ParaTest packages; SQLite reservation tests; Redis and Horizon integration tests on standalone Redis and Redis Cluster. Final review corrections and affected tests pass, including both separate and shared physical queue storage.
Integrate the database extensibility, query execution, schema typing and Testbench cleanup changes from 0.4. Resolve the two test-file conflicts by retaining both PHPUnit attribute imports and both sets of schema type assertions and custom-column fixtures. Preserve the parity branch session invalidation guards, closure subquery support and Schema facade behavior alongside the new driver boundaries. Validation: the changed connection test and composer fix pass on PHP 8.4, including formatting, full source and type-fixture analysis, the full parallel suite, Testbench package-mode tests and the dogfood package tests. Redis coverage used a dedicated local instance; unconfigured external-service cases were skipped.
Limit destructive reservation recovery to QueryException. Before-query callbacks, query-executed listeners and duration handlers can throw after a valid job is selected; treating every exception as an invalid record deleted that job after rollback. Keep transaction-state, concurrency and lost-connection checks for actual query failures. Cancellation now naturally bypasses recovery, while cleanup still preserves the original query error or propagates cancellation. No additional successful-path work or shared state is introduced. Add SQLite regressions for all three observer phases and use QueryException fixtures so the existing transient-error and cleanup tests continue exercising recovery. Preserve the overflow recovery regression. Corrects an upstream defect in laravel/framework#58978, compared against Laravel 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2. Verified affected queue/database suites, full PHPStan source/type checks, and formatting.
Describe the optional queue argument as the logical queue already selected by the caller. It overrides queueable queue metadata when choosing a forwarded connection; an explicit class-route connection still takes precedence. Document the same contract on QueueRoutes and the shared resolver concern used by dispatchers and mailables. This is a PHPDoc-only clarification with no runtime, signature or generated facade change. Follows the port of laravel/framework#61188. Verified resolver callers and precedence, existing QueueRoutes tests, formatting and source/type analysis.
Restore current Laravel tests for terminal PHP extension removal, view-name directory conversion, embedded extension preservation and case-insensitive reserved class names. Keep the separate Hypervel unit tests for generator behavior. Copy from Laravel 13.x at 01d008c9b5f32cb7c5e50a9a22273113d810b2a2 and adapt namespaces, Testbench, strict/native types and provider documentation. Preserve every upstream case and assertion. Additionally assert that reserved names create no class file, registering only that exact path for existing published-file cleanup. Relevant upstream history: laravel/framework#48667, laravel/framework#51842, laravel/framework#51847 and laravel/framework#51924. Verified the new test, combined generator and queue-route coverage, console integration tests and formatting. Generated files use the disposable Testbench application and existing cleanup lifecycle.
The schema facade delegates named connections through SchemaProxy so registered blueprint resolvers apply. That proxy previously resolved the database manager from the global container, bypassing the application configured on the facade. Pass the binding container into the proxy and resolve its database manager for each operation. This preserves container swaps, coroutine-local connection selection and fresh builders without retaining pooled connections. Add a regression covering named and default facade calls with a different global container. Verified affected schema, database and facade tests, formatting and full static analysis.
A connection-scoped forward applies only on its configured connection. queue:clear selects its connection before resolving a destination, so using another connection clears the source queue instead. Document that selection next to queue forwarding and retain the warning that clearing a shared destination also removes jobs sent through other logical names. Unscoped forwards continue to apply on every connection. Checked the wording against ClearCommand and QueueRoutes, including scoped and unscoped forwarding.
QueueFake records the logical dispatch while storage drivers apply the destination forward. Explain that distinction beside the assertion so the source queue is not mistaken for missing forwarding coverage. Keep the existing connection-selection expectation and logical-queue assertion intact. Verified the queued mail test file independently.
Capsule bootstrap installed Fluent as the configuration service, whose string getter returns Stringable. QueueManager requires a native string for the default connection, so resolving that connection could throw a TypeError. Install Config Repository when no config binding exists and preserve any supplied binding unchanged. Database and Queue Capsules sharing a container now use the same typed configuration API. No compatibility branch or cast is added to the queue manager. Cover the native string getter and supplied configuration identity. Verified the Support Capsule tests, composed SQLite Capsules, affected database and queue tests, full source/type analysis, and formatting.
Queue Capsule constructed a service provider that requires an Application, passing a bare Container instead. The existing comment and analysis suppression hid a real constructor TypeError. Extract connector registration into a shared concern used by the provider and Capsule. Preserve the nine connector hooks, their signatures, lazy construction, and exception reporting. Failover captures the manager receiving the connector registration rather than resolving an unrelated or missing queue binding. Have the provider route binding reuse the container-owned concrete registry, preserving routes registered before the provider. This completes the standalone bootstrap boundary used by the queue forwarding port from laravel/framework#61188. Add real standalone sync dispatch, named connection, and failover ownership coverage. Verified affected queue and database tests, existing lazy connector and exception-reporting coverage, full source/type analysis, and formatting.
Queue routing consulted the global container even when a manager or dispatcher belonged to another container. Without a provider binding, it created a fresh registry for every lookup, immediately losing route and forwarding registrations. Resolve routes from the existing owner across queue managers, queues, bus and event dispatchers, broadcasting, and notifications. Honor explicit route-service replacements and use the native auto-singleton for unbound registries. Preserve supported container-less queue access and the routing trait default. No per-job shared state, collaborator cache, additional I/O, or new lifecycle mechanism is introduced. Complete the standalone routing behavior associated with laravel/framework#61188. Cover owner/global isolation, replacements, persistent registrations, provider boot, and a real forwarded SQLite queue shared by Database and Queue Capsules. Correct existing reservation fixtures to register routes with their queue owner. Use partial concrete container mocks only where queue tests now require real routing resolution, preserving event counts, payload assertions, cancellation and error behavior, and the assertion that small SQS payloads do not resolve overflow storage. Validated each changed test file, affected Queue/Bus/Events/Notifications/Broadcasting/Capsule/Database tests with ParaTest, real Redis integration, full source/type analysis, and formatting. Final review confirmed the regression assertions fail against the previous behavior.
Adding the caller-selected queue parameter description made its PHPDoc union authoritative for facade generation. The generated Broadcast, Bus, Event, Notification, and Queue annotations still reflected the native union order, causing FacadeDocblocksTest to fail in both PHP 8.4 and PHP 8.5 CI. Regenerate the five affected method annotations with composer facade. The accepted types and runtime behavior are unchanged; only the union member order differs. Follow-up to the queue forwarding port: laravel/framework#61188. Verified the existing facade consistency regression fails before regeneration and passes afterward. Full formatting and source/type analysis pass; the final generated diff was reviewed.
Database reservation recovery could mistake a query issued by an observer for a failed reservation update and delete an otherwise valid job after rollback. Restrict recovery to exceptions matching the held database connection name, reservation SQL and prepared bindings. Compile the expected update with the existing query grammar using the already-mutated job record. This adds no SQL execution, shared state or work to successful reservations. Preserve transient-error, transaction-depth, cancellation and cleanup behavior; document the predicate alongside the reservation override boundary. Extend SQLite regressions across before-query, executed-query and duration observers, including identical SQL with different job bindings. Name the storage fixture distinctly from the queue and resolver identities. Keep the cleanup unit test focused on cleanup failure. Validation: changed test files, complete queue and database package suites, full source/type analysis, formatting and diff checks pass. All four new regression cases fail without the predicate. Corrects recovery ported from Laravel framework PRs: laravel/framework#58978 laravel/framework#59718
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
PR Summary by QodoAdd queue forwarding and synchronize Laravel framework behavior
AI Description
Diagram
High-Level Assessment
Files changed (103)
|
Code Review by Qodo
1. Failover jobs stay on source queues
|
| $queue = $this->resolveForwardedQueue($queue); | ||
|
|
||
| return $this->attemptOnAllConnections(__FUNCTION__, func_get_args(), $job); |
There was a problem hiding this comment.
1. Failover jobs stay on source queues 🐞 Bug ≡ Correctness
FailoverQueue::push(), pushRaw(), and later() assign the forwarded queue to their local $queue parameter but pass func_get_args() to attemptOnAllConnections(), which retains the original call arguments. When a forward is scoped to the failover connection, underlying drivers receive the source queue and do not match that failover-scoped rule, while pop() does use the forwarded destination and cannot retrieve the dispatched job.
Agent Prompt
## Issue description
Failover dispatch rewrites the local queue variable, but forwarding delegates the original method arguments through `func_get_args()`. As a result, failover-scoped forwards are skipped for `push`, `pushRaw`, and `later`, even though reads use the forwarded queue.
## Fix Focus Areas
- src/queue/src/FailoverQueue.php[175-199]
## Recommended Fix
Build the delegated argument arrays explicitly after resolving `$queue` (or replace the relevant queue element in the argument array) before calling `attemptOnAllConnections()`. Preserve the existing argument order for `push`, `pushRaw`, and `later`, including options and delay values.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
|
||
| An explicit connection configured on a job takes precedence over a forwarded connection. | ||
|
|
||
| A forward scoped to a `failover` connection requires an explicit queue name; otherwise, each child connection uses its own default queue. |
There was a problem hiding this comment.
2. Failover forwarding documentation is wrong 🐞 Bug ≡ Correctness
The sentence in src/docs/queues.md says a connection-scoped failover forward without an explicit destination queue makes each child connection use its own default queue. QueueRoutes::forwardedQueue() instead retains the source queue when the configured destination is null, and FailoverQueue passes that retained queue to every child connection.
Agent Prompt
Issue description
The failover forwarding documentation incorrectly says that omitting a destination queue makes child connections use their individual default queues. A connection-scoped forward with a null destination preserves the source queue instead.
Fix Focus Areas
- src/docs/queues.md[1710-1710]
Recommended Fix
Replace the claim with wording that explains a connection-scoped failover forward without a destination retains the original queue name for each child connection. Clarify that child defaults are used only when the dispatched job itself has no queue name to forward.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| /** | ||
| * Create a new schema proxy. | ||
| */ | ||
| public function __construct(protected Container $app) |
There was a problem hiding this comment.
3. Direct schema proxy construction crashes 🐞 Bug ≡ Correctness
SchemaProxy::__construct() now requires a Container, replacing the class's previous implicit no-argument constructor. Applications that directly instantiate this public proxy with `new SchemaProxy() fail with ArgumentCountError` before they can perform schema operations, while the provider change only updates the framework-owned construction site.
Agent Prompt
Issue description
`SchemaProxy` was previously constructible without arguments and resolved its container globally. Requiring a `Container` now breaks direct consumers of this public class.
Fix Focus Areas
- src/database/src/Schema/SchemaProxy.php[24-25]
Recommended Fix
Make the constructor argument optional and fall back to the current container when it is omitted, while retaining the injected application container for framework-managed instances.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
Laravel updates
havingBetween, and bring the console trait comments into line with current upstream wording. Existing query behavior and native types remain unchanged.appendRulesandsometimes. Document appending rules to an existing validator and preserve Hypervel's encoded attribute handling and lookup invalidation.Queue::forwardwith enum-aware boot-time registration, current upstream tests and adapted documentation. Resolve dynamic listener, broadcast and notification queues before choosing their connection; explicit connections still win. Apply forwarding across the supported queue drivers and preserve child defaults when failover receives no queue argument. Regenerate affected facades and document worker queue selection and draining an existing source backlog.Additional Hypervel fixes
Schema::connection()now honors facade mocks, so tests using a mocked Schema facade must set the corresponding expectation.DeadlockException. Losing that metadata prevented outer transactions from retrying and could cause a valid queued job to be classified as invalid.QueueFake::connection()does not filter recorded jobs, so chaining it before a queue assertion could hide incorrect connection selection. Verify the factory call directly and correct the scheduler fixture's concealed connection-name typo.instant()->lock('none')example and explain that INSTANT permits only DEFAULT locking. Remove unsupported SQL Server-only definition metadata.Summary by CodeRabbit
New Features
whereBetweenand related query methods now accept closures directly.Bug Fixes
Documentation