private function resolveMagicCall($method, $by, array $arguments)
    {
        if (! $arguments) {
            throw InvalidMagicMethodCall::onMissingParameter($method . $by);
        }

        $fieldName = lcfirst(Inflector::classify($by));

        if ($this->class->getProperty($fieldName) === null) {
            throw InvalidMagicMethodCall::becauseFieldNotFoundIn(
                $this->entityName,
                $fieldName,
                $method . $by
            );
        }

        return $this->{$method}([$fieldName => $arguments[0]], ...array_slice($arguments, 1));
    }