protected function forward($callback, $method, $params = [])
    {
        if ($this->isLoaded()) {
            if (!$this->soft) {
                $oldInstance = clone $this->instance;
            }
            $return = $callback();
            if (!$this->soft && $oldInstance != $this->instance) {
                $this->instance = $oldInstance;
                $this->throwImmutableException();
            }
            return $return;
        } else {
            return parent::$method($params);
        }
    }