Write a program to simulate a state machine that transitions a Candid Health billing invoice through various stages (Draft, Submitted, Paid, Rejected) while handling invalid state transitions. Implement simulate_invoice(initial_state, requested_states). Valid transitions are Draft to Submitted, Submitted to Paid or Rejected, and Rejected to Submitted. Paid is terminal. Return a dictionary containing the final state and one result per request, including the requested state, resulting state, and whether the transition was valid. Invalid requests leave the invoice state unchanged.
def simulate_invoice(initial_state, requested_states):