mykholy/laravel-accessproof
Laravel AccessProof is a lightweight authorization package that helps enforce and verify access rules across routes and controller actions. It integrates with Laravel gates, policies, and middleware to make permission checks consistent, harder to overlook, and easier to audit.
composer require --dev mykholy/laravel-accessproof:^1.2. It is not a runtime package — nothing should reference it outside your test suite.docs/SCENARIOS.md (the scenario cookbook) before writing anything bespoke. It is the fastest path from install to a working cross-tenant test. Then skim docs/FIELD_REPORT.md to see the class of defects the tool was validated against — that list doubles as a checklist for what to write tests for in your own app.watchRows() to confirm no rows were silently written by a request that should have been denied.tests/Feature/Authorization suite using RefreshDatabase or DatabaseTransactions. Point it only at an isolated test database populated with synthetic fixtures.Gate::assertDenied(), assertAllowed(), and direct policy unit tests still cover the pure decision logic cheaply. Use this package where you need to exercise the full route → middleware → controller → policy → database path.watchRows() for side-effect assertions. This is the piece that catches the "returns 403 but already wrote the row / queued the job / touched the related record" class of bug. It works against actual SQLite records, so fixtures must be genuinely persisted, not in-memory models.^1.2 in require-dev; a patch-level bump should never require a code change.Queue::fake(), Http::fake(), Mail::fake(), and Event::fake() to close that gap yourself.watchRows() needs real rows. If your fixture builder leaves models in memory or uses make() instead of create(), row watching has nothing to observe and will silently look clean.SCENARIOS.md — that is where the practical value landed.How can I help you explore Laravel packages today?