Can you help me refine / review this Pull Request description I've written: This adds several rescue protections and other refactors for the create_booking routine. This makes sure we do our very best to write records to the Bookings table on success or failure. Previously if there were errors in the provider app, or in fraud detection, or merchanting, there was a good chance we would fail to write a record. In addition if there were errors after a successful booking, it would treat it as a failure, even though it was a success from the provider's point of view. This refactors things a bit to make sure we do our best to write a success record once the provider returns a success, even if other areas later fail. If all else fails (database errors, bad data, etc.), we log a GHOST BOOKING to the log and send a GHOST BOOKING stat to datadog.