code: function() {
      const Utils = this.definition.store.utils
      const self = this.chain()
  
      const parentRelations = self.getInternal('parent_relations')
      const conditions = Utils.toConditionList(
        Utils.args(arguments),
        Object.keys(self.definition.attributes)
      )
  
      conditions.forEach(function(cond) {
        if (
          cond.type === 'relation' &&
          !self.definition.relations[cond.relation] &&
          !self.options.polymorph
        ) {
          throw new Error(
            'Can\'t find attribute or relation "' +
              cond.relation +
              '" for ' +
              self.definition.modelName
          )
        }
  
        if (parentRelations) {
          cond.parents = parentRelations
          if (cond.value && cond.value.$attribute && !cond.value.$parents) {
            cond.value.$parents = parentRelations
          }
        }
  
        self.addInternal('having', cond)
      })
  
      return self
    }
docs: SQL Having conditions
  @class Model
  @method having
  @param {object} conditions - every key-value pair will be translated into a condition
  @or
  @param {array} conditions - The first element must be a condition string with optional placeholder (?), the following params will replace this placeholders
  
  @return {Model}