= 100) { throw new InvalidArgumentException('City name cannot be longer than 100 characters'); } } public static function create(string $name, string $countryAlpha2, ?string $zipCode = null): self { return new self($name, new Country($countryAlpha2), $zipCode !== null ? new ZipCode($zipCode) : null); } }