I can't comment on Duncanmoo's response since I have no reputation yet.
But in PHP 8.4, you can simplify it to
public static function tryFromName(string $name): ?static { return array_find(self::cases(), fn($case) => $case->name === $name); }