Trigger Invoice Creation based on custom field?

Trigger Invoice Creation based on custom field?

Can anyone help me with a function to create the below scenario:

I would like an invoice to be created automatically based on a change in a field value in the Contact Module. 

For example, let's i have a custom field in the "Contact" Module called "Status". 
This "Status" field is "option-type" field where one of the options is "Invoiced".
I would like to have the system to create an invoice automatically and send it to customer when the status changes to "Invoice". 

Can anyone help me with the function code or any solution to fix this scenario....
Thank you so much in advance.