protected function callSupportedMethod(string $method, string $fieldName, array $arguments)
    {
        $classMetadata = $this->getClassMetadata();

        if (!$classMetadata->hasField($fieldName) && !$classMetadata->hasAssociation($fieldName)) {
            throw new \BadMethodCallException(\sprintf(
                'Invalid call to %s::%s. Field "%s" does not exist',
                $this->getClassName(),
                $method,
                $fieldName
            ));
        }

        // @codeCoverageIgnoreStart
        $parameters = \array_merge(
            [$fieldName => $arguments[0]],
            \array_slice($arguments, 1)
        );

        return \call_user_func_array([$this, $method], $parameters);
        // @codeCoverageIgnoreEnd
    }