What problem does it solve? Asynchronous jobs and queued notifications in a multi-tenant Laravel app lose the HTTP request context, causing global scopes to return zero rows, duplicate job executions, and emails that never send. This Skill documents the exact patterns to create, dispatch, and debug jobs and mail notifications safely in the Toollab codebase. ## Core Features & Use Cases - Job creation patterns: Enforces context reinjection of school and school-year IDs inside handle(), afterCommit() dispatching, idempotency via transition checks, and passing integer IDs instead of serialized models. - Notification conventions: Covers the 6 existing Mailable notifications, ShouldQueue with $tries = 3 and $backoff = [60, 300, 900], Blade email templates, and the dual URL bases (app.url for images, app.frontend_url for links). - Debugging playbook: Diagnoses common failures such as missing queue workers in dev, retry_after shorter than job $timeout, stale serialized payloads, and broken logos in Gmail. - Use Case: When a payment completion email never arrives in development, use this Skill to check that a queue worker is running, verify Maildev on port 1080, and confirm the job reinjects tenant context. ## Quick Start Ask the assistant to create a new queued Laravel job and notification following the Toollab multi-tenant context reinjection pattern.