code: public static function createLocatedError($error, $nodes = null, $path = null)
      {
          if ($error instanceof self) {
              if ($error->path && $error->nodes) {
                  return $error;
              }
  
              $nodes = $nodes ?: $error->nodes;
              $path  = $path ?: $error->path;
          }
  
          $source     = $positions = $originalError = null;
          $extensions = [];
  
          if ($error instanceof self) {
              $message       = $error->getMessage();
              $originalError = $error;
              $nodes         = $error->nodes ?: $nodes;
              $source        = $error->source;
              $positions     = $error->positions;
              $extensions    = $error->extensions;
          } elseif ($error instanceof Exception || $error instanceof Throwable) {
              $message       = $error->getMessage();
              $originalError = $error;
          } else {
              $message = (string) $error;
          }
  
          return new static(
              $message ?: 'An unknown error occurred.',
              $nodes,
              $source,
              $positions,
              $path,
              $originalError,
              $extensions
          );
      }
docs: Given an arbitrary Error, presumably thrown while attempting to execute a
  GraphQL operation, produce a new GraphQLError aware of the location in the
  document responsible for the original Error.
  
  @param mixed        $error
  @param Node[]|null  $nodes
  @param mixed[]|null $path
  
  @return Error