state = $state; } private static function ensureIsValidState(string $state) { if (!in_array($state, self::$validStates)) { throw new InvalidArgumentException('Invalid state given'); } } public function __toString(): string { return $this->state; } }