self::ASC, SortDirection::Descending => self::DESC, }; } public static function tryFrom(SortDirection|string|null $value): ?SortDirection { if ($value instanceof SortDirection) { return $value; } return match ($value === null ? null : strtolower($value)) { self::ASC => SortDirection::Ascending, self::DESC => SortDirection::Descending, default => null, }; } }