reliqarts/laravel-scavenger
Laravel Scavenger is a utility package that helps you find and clean up orphaned or stale data in your Laravel app. It scavenges leftover records and files so your database and storage stay tidy, with simple configuration and Artisan-friendly workflows.
App\Models\User. If our near-term roadmap includes any always-on worker that acts on behalf of a user (polling, sync, fetching, monitored jobs), that's the make-or-break plumbing we would otherwise build and maintain ourselves.guzzle_settings.timeout now governs both the idle timeout and the maximum total request duration. That turns timeouts into a real product constraint: any workflow that legitimately runs long (large downloads, slow upstream APIs, paginated fetches) gets a hard ceiling and will start failing unless we deliberately configure it. This should be a scoped work item, not a config afterthought.hashed cast is a correctness win but has a migration consequence: any daemon credential stored under the old double-hash behavior may no longer authenticate. Plan for a credential reset/rotation path and a support note before rollout.Adopt when:
Look elsewhere (or stay on the prior major) when:
App\Models\User" assumption and the hashed cast path — validate before committing.Before committing, get answers on: the upgrade/migration path for stored daemon credentials, what the new timeout semantics do to our slowest existing jobs, and whether anything in our code relies on Goutte-specific behavior (redirects, cookies, form handling) that HttpBrowser implements differently.
For executives: This is a maintenance-and-risk release, not a feature release. It keeps us on supported Laravel and PHP versions, retires a dependency that the ecosystem has moved past, and fixes a security-adjacent bug where daemon passwords were being hashed twice. The cost is a planned upgrade window plus a credential reset for daemon accounts; the risk of staying put is falling off supported framework versions. No new spend, no vendor change.
For engineering: v4.0.0 requires PHP 8.3+ and Laravel 12/13 — confirm our upgrade timeline before scheduling. Three behavior changes to plan around: (1) Symfony HttpBrowser replaces Goutte, so validate redirect/cookie/form semantics and remove Goutte-specific assumptions; (2) guzzle_settings.timeout is now both idle timeout and max request duration, so audit every long-running fetch and set explicit ceilings; (3) the double-hash fix on hashed-cast daemon models means existing daemon credentials likely need rotation — build that into the rollout, don't discover it in production. Also confirm the new App\Models\User default matches our config or override it explicitly. Recommend a staged rollout with monitoring on daemon auth failures and timeout-related job failures.
How can I help you explore Laravel packages today?