When dealing with multiple DB operations changing the data, you should use database transactions in most cases.
https://github.com/HPWebdeveloper/laravel-pay-pocket