'Permanent', self::CONTRACT => 'Contract', self::INTERN => 'Intern', }; } public function color(): string { return match ($this) { self::PERMANENT => 'primary', self::CONTRACT => 'warning', self::INTERN => 'secondary', }; } public static function values(): array { return array_map(fn ($case) => $case->value, self::cases()); } public static function comment(): string { return implode(', ', array_map(fn ($case) => "{$case->value}: {$case->label()}", self::cases())); } }