I recently stumbled upon a peculiar issue with Laravel Vapor where I was getting collisions with index names during database migrations on deploy and wanted to share how to work through this. My first instinct was "oh, I was testing this migration out against the database directly to make sure it was doing what I needed it to, so I need to first drop the index and try again"
This means for operations on large tables (or any long-running deploy hook), a timeout is reached and the deploy will fail.
Lastly, you'll need to add an entry to the migrations table for each migration key to prevent future calls to migrate from running the sane migration again.
Now, in this instance I was adding an index to an existing (large) table, so this approach made sense.