Skip to main content
Version: 1.0.0

Common Patterns

Two-Man Rule (initiator + one peer)

Flow::make()
->anyOfPermissions(['orders.manage'])
->includeInitiator(true, true)
->signedBy(2, 'Ops Two-Man')
->build();

One of Any Two Roles

Flow::make()
->anyOfRoles(['finance_manager','ops_manager'])
->signedBy(1, 'Management')
->build();

Multi-Step Escalation

Flow::make()
->anyOfPermissions(['local_rates.manage'])
->includeInitiator(true, true)
->signedBy(2, 'Ops')
->anyOfRoles(['finance_manager','ops_manager'])
->signedBy(1, 'Management')
->build();

Controller Intercept Without Touching Models

$changes = $request->validate(['status_id' => 'integer']);

$result = $this->guardrailIntercept($model, $changes, [
'description' => 'Escalate order status overrides to operations.',
'only' => ['status_id'],
'extender' => Flow::make()->anyOfPermissions(['orders.manage','orders.escalate'])->signedBy(2, 'Ops'),
]);