$args */ public function handle($root, array $args, $context, ResolveInfo $resolveInfo, Closure $next) { $baseType = $resolveInfo->fieldDefinition->config['baseType'] /** @phpstan-ignore-next-line */ ?? $resolveInfo->fieldDefinition->config['type']->getWrappedType()->config['baseType']; if (! $baseType instanceof EloquentType) { return $next($root, $args, $context, $resolveInfo); } $bindableFields = collect($baseType->fieldClasses()) ->filter(fn (Field $field): bool => $field instanceof BindableField && Arr::has($args, $field->getName())) ->all(); /** @var Field&BindableField $field */ foreach ($bindableFields as $field) { $resolver = $field->bindResolver($args); if ($resolver === null) { $args['model'] = $baseType->model()::query() ->where($field->getColumn(), Arr::get($args, $field->getName())) ->firstOrFail(); continue; } $args[$field->getName()] = $resolver; } return $next($root, $args, $context, $resolveInfo); } }