'Pending', self::InReview => 'In Review', self::Approved => 'Approved', self::Rejected => 'Rejected', }; } public function allowedTransitions(): array { return match ($this) { self::Pending => [self::InReview, self::Rejected], self::InReview => [self::Approved, self::Rejected], self::Approved => [], self::Rejected => [self::Pending], }; } }