code: public static NotFound of(int errorCode, Throwable cause, String message, Object... args) {
          touchPayload().errorCode(errorCode).message(message, args).cause(cause);
          return _INSTANCE;
      }
docs: Returns a static NotFound instance and set the {@link #payload} thread local
  with error code, cause and message specified.
  
  When calling the instance on {@link #getMessage()} method, it will return whatever
  stored in the {@link #payload} thread local
  
  @param cause  the cause
  @param errorCode the app defined error code
  @param message the message
  @param args the message arguments
  @return a static NotFound instance as described above