docs: public void onUpdateReceived(Update update) {
      BotLogger.info(format("New update [%s] received at %s", update.getUpdateId(), now()), format("%s - %s", TAG, botUsername));
      BotLogger.info(update.toString(), TAG);
      long millisStarted = System.currentTimeMillis();
  
      Stream.of(update)
          .filter(this::checkGlobalFlags)
          .filter(this::checkBlacklist)
          .map(this::addUser)
          .filter(this::filterReply)
          .map(this::getAbility)
          .filter(this::validateAbility)
          .filter(this::checkPrivacy)
          .filter(this::checkLocality)
          .filter(this::checkInput)
          .filter(this::checkMessageFlags)
          .map(this::getContext)
          .map(this::consumeUpdate)
          .forEach(this::postConsumption);
  
      long processingTime = System.currentTimeMillis() - millisStarted;
      BotLogger.info(format("Processing of update [%s] ended at %s%n---> Processing time: [%d ms] <---%n", update.getUpdateId(), now(), processingTime), format("%s - %s", TAG, botUsername));
    }