code: function (command, callback) {
  
      var self = this;
      var callbacked = false;
  
      function handleError (err) {
        debug(err);
  
        if (_.isString(err)) {
          if (_.isEmpty(err)) {
            err = self.description;
          }
          err = new BusinessRuleError(err);
        } else if (err instanceof BusinessRuleError) {
          // do nothing
        } else {
          err = new BusinessRuleError(err.message || self.description);
        }
  
        callbacked = true;
        callback(err);
      }
  
      var payload;
      if (!this.payload || this.payload === '') {
        payload = command;
      } else {
        payload = dotty.get(command, this.payload);
      }
  
      try {
        if (this.preLoadConditionFn.length === 2) {
          this.preLoadConditionFn(_.cloneDeep(payload), function (err) {
            if (err) {
              return handleError(err);
            }
            callbacked = true;
            callback(null);
          });
        } else {
          var err = this.preLoadConditionFn(_.cloneDeep(payload));
          if (err) {
            return handleError(err);
          }
          callbacked = true;
          callback(null);
        }
      } catch (err) {
        if (!callbacked) {
          return handleError(err);
        }
        throw err;
      }
    }
docs: Checks this business rule.
  @param {Object}   command  The command that was handled.
  @param {Object}   aggData  The aggregate values.
  @param {Function} callback The function, that will be called when this action is completed.
  `function(err){}`