I much prefere your second example (the long one) as I know exactly whats going on. You could should be using a modifier for the nested if, so it's more like

```
if payment_due?
 payment_successful = process payment!
 print_receipt if payment_successful
end
```

Additionally, you should probably do something if the payment fails. Which you can't do using `&&` for control flow.