Are your invoices a subscription payment, or are they for one-off services?
How do customers usually pay for them at the moment? Is it automatable (credit cards, etc) or is it highly manual (cheques, etc)
My recommendation would be to stop giving out free lunch if you don't want people having free lunch. Collect full payment before the service is provided.
As far as 1-year contracts go, just don't have them. Contracts are impossible to enforce. Instead, have a monthly price, and then a discounted yearly price if you pay for a year in advance with no refunds. Essentially the same as a contract but with no way for people to stop paying midway through.