The bank-grade four-eyes principle, ported into Laravel. Refunds, role changes, large outbound payments, account closures, audit-relevant edits every Laravel app we ship for finance, healthcare, or government grows a wonky bespoke approval system around month four. This is that system, written once.
- Multi-role approvals (officer creates, manager approves, director countersigns above threshold)
- Conditional rules engine (
amount > 50_000,actor.branch !== model.branch) - Delegation with expiry
- Pessimistic locking on the pending model
- REST API for the approval inbox + Eloquent-event auto-intercept
- Bulk approve/reject for high-volume contexts (county revenue runs of 80+ receipts a day)