public async Task <IActionResult> MakePayment([FromBody] PaymentRequest paymentRequest) { try { if (ValidatePaymentRequest(paymentRequest)) { var result = await _paymentGateway.MakePaymentAsync(paymentRequest); return(StatusCode(201, result)); } return(StatusCode(422)); } catch (Exception e) { _logger.LogError("Error Processing Payment", e); return(StatusCode(502)); } }