Model-first approval workflow engine for Laravel & Filament

Add approval workflows to any Laravel model in minutes.

Add approvals, workflow tasks, reject flows, and audit trails to existing Eloquent models.

Walk through refund and purchase-request approvals on real business objects — no local install required.

use DbflowLabs\Core\Traits\HasWorkflow;
use DbflowLabs\Core\DBFlow;

class Refund extends Model { use HasWorkflow; }

DBFlow::start('refund_dispute_approval', $refund);

Workflow key must match a published definition — refund example.

How it works

How DBFlow works

Workflows attach to Eloquent models. DBFlow manages instances, tasks, and audit trails.

Philosophy

Why model-first?

Approval logic belongs on the business objects your app already owns.

Traditional BPM

  • External process engine
  • Duplicated business logic
  • Complex integration layer
  • Difficult long-term maintenance

DBFlow

  • Existing Eloquent models
  • Native Laravel services
  • Filament-ready UI layer
  • Dedicated approval infrastructure

Practical value

Why not build approvals yourself?

Tasks, reject paths, audit trails, permissions, and versioning add up fast.

Without DBFlow

  • Create workflow tables manually
  • Build pending task logic
  • Handle approval modes
  • Implement reject flows
  • Track audit history
  • Add Filament pages
  • Protect business actions
  • Maintain workflow versions

With DBFlow

  • Install the package
  • Add HasWorkflow
  • Define a workflow
  • Add Filament actions
  • Approve or reject tasks
  • View the timeline
  • Keep business logic in your app

Use cases

Typical use cases

Real Laravel business objects—not abstract process diagrams.

Purchase Request Approval

PurchaseRequest Manager approval before converting to a purchase order Controlled purchasing flow

Refund Approval

Refund Finance review before refunding a customer Safer refund handling

Expense Approval

ExpenseClaim Manager and finance review Cleaner internal approvals

Vendor Approval

Vendor Onboarding review before activation Safer supplier management

High-value Order Approval

Order Approval when amount exceeds a threshold Controlled high-risk sales

Inventory Adjustment Approval

InventoryAdjustment Supervisor approval before stock changes Safer inventory operations

Laravel-native

Built for Laravel projects

Atomic task actions, append-only audit logs, WorkflowHooks, and optional Filament UI.

Eloquent integration docs →
  • Eloquent models — workflows bind to business objects
  • Database transactions — approve and reject atomically
  • WorkflowHooks — map events to model status columns
  • Append-only audit trail in dbflow_workflow_logs
  • Filament UI — My Tasks, timelines, resource actions
  • PHPUnit — test real approval workflow runs

Product layers

Core, Filament Standard, Pro Builder

Core runs workflows. Filament adds admin UI. Pro helps design definitions.

Product overview →

Public alpha

Public alpha — evaluate first

Core and Filament Standard are in public alpha — ready for demos, staging pilots, and integration feedback.

FAQ

Common questions

Is DBFlow a BPM platform?

No. DBFlow is a model-first approval workflow engine for Laravel Eloquent models—not a BPMN server or low-code suite.

Do I need Filament?

No. Core runs workflows without Filament. Filament Standard adds My Tasks, timelines, and resource actions.

Do I need Pro?

No. Pro Builder is optional visual authoring. Core and Filament Standard are enough to evaluate.

Can I start with one model?

Yes. Pick one business object, add HasWorkflow, and expand when it proves useful.

Can I keep my existing business logic?

Yes. DBFlow manages workflow state and audit trails. Your services and rules stay in control.

What is the current maturity level?

Public alpha. Ready for evaluation and staging pilots—not a production maturity promise.

Can I remove DBFlow later?

Workflow state lives in separate dbflow_workflow_* tables, separate from your domain models.

More questions? Community · Package status

Add approval workflows to your Laravel app

Try the live demo, install Core, or read the roadmap.