name = $name; } /** * @throws InvalidTriggerName * * @psalm-assert non-empty-string $name */ public static function from(mixed $name): static { return new self($name); } public static function tryFrom(mixed $name): static|null { try { return new self($name); } catch (InvalidTriggerName) { return null; } } /** @psalm-return non-empty-string */ public function getName(): string { return $this->name; } /** @psalm-return non-empty-string */ public function __toString(): string { return $this->name; } }