I think it's better to log **after** we charge. What if `this.wallet.charge()` will throw an exception? We still report a successful charging