What problem does it solve?
It solves the problem of scattered business logic across controllers, jobs, and listeners by making domain operations live in dedicated Laravel action classes.
Core Features & Use Cases
- Invokable action classes with a single
__invoke() entry point for consistent, composable domain behavior.
- Transactional, stateless workflows that wrap database modifications in
DB::transaction() to keep state changes reliable.
- Action composition and guardrails where actions call other actions for workflows and validate domain rules before mutating data (including throwing domain exceptions).
- Use cases: create/update business entities (including multi-step workflows), enforce domain constraints (e.g., cancellation rules), and coordinate side effects like notifications and external service calls from a domain-centric place.
Quick Start
Create an invokable action class (e.g., CreateOrderAction) that accepts your domain inputs, validates rules, performs model changes inside DB::transaction(), and returns the updated model.