protected function callProxySetters(string $name, $value, $result = null)
    {
        $result = null;
        if ($this->getMiddlewareGroup(Caller::TYPE_SETTER)->isNotEmpty()) {
            $middleware = $this->getMiddlewareGroup(Caller::TYPE_SETTER);
            $arguments = [$name, $value];
            $result = $this->callMiddleware($middleware, "set", $arguments, Caller::TYPE_SETTER, $result);

        } elseif ($this->magicMethodsFallbackLocally && property_exists($this, $name)) {
            $this->setAttribute($name, $value);
            $result = [$name, $value];
        }
        return $result;
    }