code: protected final void fail(@NotNull String reason, @Nullable Throwable cause) {
      Fail.fail(formattedErrorMessage(reason), cause);
    }
docs: Fails by throwing an {@code AssertionError}.
  
  @param reason the reason for the failure, used as the message for the thrown exception.
  @param cause  the root cause of the failure, included in the thrown exception.
  @throws NullPointerException if the given reason is {@code null}.