private function repackageDefinitionCall(DefinitionCall $call, array $newArguments)
    {
        $definition = $call->getCallee();

        if (!$definition instanceof Definition) {
            throw new UnsupportedCallException(
                sprintf(
                    'Something is wrong in callee associated with `%s` call.',
                    get_class($call)
                ), $call
            );
        }

        return new DefinitionCall(
            $call->getEnvironment(),
            $call->getFeature(),
            $call->getStep(),
            $definition,
            $newArguments,
            $call->getErrorReportingLevel()
        );
    }