function preloadIncludes(Utils, through) {
  return function() {
    const self = this
    const includes = this.getInternal('includes') || []
    const conditions = this.getInternal('conditions') || []
    const preload = []

    if (includes.length === 0) return

    // check for relations which could be preloaded!
    includes.forEach(function(inc) {
      if (inc.through !== through) return
      const relation = self.definition.relations[inc.relation]

      if (typeof relation.loadFromConditions === 'function') {
        const result = relation.loadFromConditions(self, conditions, inc)

        if (result && result.then) {
          preload.push(result) // and also add it to this array for a simultaneous query
        }
      }
    })

    return Utils.parallel(preload)
  }
}
Include relations into the result
@class Record
@method include
@param {array} includes - array of relation names to include
@or
@param {object} includes - for nested includes use objects

@see Model.exec

@return {Model}