public function apply($builder, array $args)
    {
        /*
         * Call the queryFilter for backwards compatibility
         * @deprecated
         */
        $this->queryFilter->filter($builder, $args);

        foreach ($args as $key => $value) {
            /** @var \Nuwave\Lighthouse\Support\Contracts\ArgBuilderDirective $builderDirective */
            if ($builderDirective = Arr::get($this->builderDirectives, $key)) {
                $builder = $builderDirective->handleBuilder($builder, $value);
            }
        }

        foreach ($this->scopes as $scope) {
            call_user_func([$builder, $scope], $args);
        }

        return $builder;
    }