laravel-state-machines

📁 leeovery/claude-laravel 📅 Jan 24, 2026
20
总安装量
13
周安装量
#17872
全站排名
安装命令
npx skills add https://github.com/leeovery/claude-laravel --skill laravel-state-machines

Agent 安装分布

claude-code 11
antigravity 9
codex 9
gemini-cli 8
cursor 8

Skill 文档

Laravel State Machines

State machines with Spatie Model States for complex state transitions and validation.

Core Concept

state-management.md – State machine patterns:

  • Spatie Model States setup
  • State classes with behavior
  • Transition classes with validation
  • State-specific methods
  • When to use state machines vs simple enums
  • Testing state transitions

Pattern

// State classes
final class DraftOrderState extends OrderState
{
    public function canBeSubmitted(): bool
    {
        return true;
    }
}

final class PendingOrderState extends OrderState
{
    public function canBeSubmitted(): bool
    {
        return false;
    }
}

// Transition class
final class SubmitOrderTransition extends Transition
{
    public function handle(): OrderState
    {
        // Validation and side effects

        return new PendingOrderState($this->order);
    }
}

// Usage
$order->status->transitionTo(PendingOrderState::class);

Use state machines for complex state with validation, side effects, or state-specific behavior. Use simple enums for basic status fields.