*/ public static function values(): array { return array_column(self::cases(), 'value'); } /** * 유효한 타입 값인지 확인합니다. * * @param string $value 검증할 타입 값 * @return bool 유효 여부 */ public static function isValid(string $value): bool { return in_array($value, self::values(), true); } /** * 타입의 다국어 라벨을 반환합니다. * * @return string 번역된 타입 라벨 */ public function label(): string { return __('permission.type.'.$this->value); } /** * 타입의 아이콘 이름을 반환합니다. * * @return string 아이콘 이름 */ public function icon(): string { return match ($this) { self::Admin => 'cog', self::User => 'user', }; } }