We invoice at the beginning of the month but give 45 for days for paying - invoiced in advance, pay in arrears. Works well.
For the bigger job we invoice in arrears and just have to wait.
While we were starting out we did all invoicing in advance and expected payment by the end of the month
If clients complained (which they didn't tend to) we said that we have to advance the wages to the cleaners and that we were a small company and couldn't afford to do it any other way - they were usually ok.