public function set(string $key, $value): self
    {
        if (! isset($this->props[$key])) {
            throw new \Exception('Cannot add new property from set. Use add()');
        }

        $this->props[$key] = $value;

        return $this;
    }