src/Support/Reflection/EntityReflector.php
private function prepareArgument(ReflectionParameter $parameter)
    {
        $parameterName = $parameter->getName();
        $argument = $this->getArgument($parameterName);

        if ($parameter->isArray()) {
            return $this->prepareArrayArgument($parameter, $argument);
        }

        if (is_null($argument) && ! $parameter->allowsNull()) {
            throw NullRequiredArgumentException::create($parameterName, $this->getName());
        }

        if ( ! is_null($argument) && $parameterClass = $parameter->getClass()) {
            return (new static($parameterClass->getName(), $argument))->reflect();
        }

        return $argument;
    }
private function prepareArgument(ReflectionParameter $parameter)
    {
        $parameterName = $parameter->getName();
        $argument = $this->getArgument($parameterName);

        if ($parameter->isArray()) {
            return $this->prepareArrayArgument($parameter, $argument);
        }

        if (is_null($argument) && ! $parameter->allowsNull()) {
            throw NullRequiredArgumentException::create($parameterName, $this->getName());
        }

        if ( ! is_null($argument) && $parameterClass = $parameter->getClass()) {
            return (new static($parameterClass->getName(), $argument))->reflect();
        }

        return $argument;
    }
@param ReflectionParameter $parameter

@return mixed

@throws \Ordercloud\Support\Reflection\Exceptions\ArgumentNotProvidedException
@throws NullRequiredArgumentException