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