code: public function decorate(callable $decorator): Binding
      {
          if (empty($this->definition->decorators)) {
              $this->definition->decorators = [];
          }
          
          $this->definition->decorators[] = new Decorator($decorator);
          
          return $this;
      }
docs: Adds a decorator that is applied to the created object instance.
  
  Decorators may return null (or not use return at all) to preserve the decorated object.
  
  @param callable $decorator Decorator receives the object instance as first argument and must return an instance of the same type.
  @return Binding