'Pending', self::InProgress => 'In Progress', self::Completed => 'Completed', self::Blocked => 'Blocked', self::Closed => 'Closed', }; } public function allowedTransitions(): array { return match ($this) { self::Pending => [self::InProgress, self::Blocked], self::InProgress => [self::Completed, self::Blocked, self::Pending], self::Completed => [self::InProgress, self::Pending, self::Closed], self::Blocked => [self::Pending, self::InProgress], self::Closed => [], }; } }