public static PaymentRequired of(Throwable cause) {
        if (_localizedErrorMsg()) {
            return of(cause, defaultMessage(PAYMENT_REQUIRED));
        } else {
            touchPayload().cause(cause);
            return _INSTANCE;
        }
    }
public static PaymentRequired of ( Throwable cause ) { if ( _localizedErrorMsg ( ) ) { return of ( cause , defaultMessage ( PAYMENT_REQUIRED ) ) ; } else { touchPayload ( ) . cause ( cause ) ; return _INSTANCE ; } }
Returns a static PaymentRequired instance and set the {@link #payload} thread local
with cause specified.

When calling the instance on {@link #getMessage()} method, it will return whatever
stored in the {@link #payload} thread local

@param cause the cause
@return a static PaymentRequired instance as described above