src/Container.php
public function call($callback, array $parameters = [], ?string $defaultMethod = null)
    {
        if ($this->isCallableWithAtSign($callback) || $defaultMethod) {
            return $this->callClass($callback, $parameters, $defaultMethod);
        }

        /*
        return $this->callBoundMethod($container, $callback, function () use ($container, $callback, $parameters) {
            return call_user_func_array(
                $callback, $this->getMethodDependencies($container, $callback, $parameters)
            );
        });*/

        if (! is_callable($callback)) {
            throw new InvalidArgumentException(sprintf(
                '(%s) is not resolvable.',
                is_array($callback) || is_object($callback) || is_null($callback) ? json_encode($callback) : $callback
            ));
        }

        return $this->resolver->call($callback, $parameters);
    }
public function call($callback, array $parameters = [], ?string $defaultMethod = null)
    {
        if ($this->isCallableWithAtSign($callback) || $defaultMethod) {
            return $this->callClass($callback, $parameters, $defaultMethod);
        }

        /*
        return $this->callBoundMethod($container, $callback, function () use ($container, $callback, $parameters) {
            return call_user_func_array(
                $callback, $this->getMethodDependencies($container, $callback, $parameters)
            );
        });*/

        if (! is_callable($callback)) {
            throw new InvalidArgumentException(sprintf(
                '(%s) is not resolvable.',
                is_array($callback) || is_object($callback) || is_null($callback) ? json_encode($callback) : $callback
            ));
        }

        return $this->resolver->call($callback, $parameters);
    }
Call the given Closure / class@method and inject its dependencies.

@param callable|string $callback
@param array           $parameters
@param string|null     $defaultMethod

@return mixed