code: 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;
      }
docs: set value of certain key on property cannot add new property, use add instead
  
  @param mixed $value