A client brought us a redesign to wire into their payment and verification flows. The design was genuinely good: the spacing, the type, a checkout you actually wanted to use.
It had a screen for every step going right, and nothing for any step going wrong. No declined card. No verification that comes back asking for a second document. No session that quietly expires while the customer hunts for their ID.
In payments and onboarding, those are not edge cases, they are a normal Tuesday. So the first build dropped people onto a beautiful page with one small line of red text and no idea what to do next, and the support team covered the gap by hand, one message at a time.
Now we walk a design the boring way before anyone writes code: for every step, what does the customer see when it fails, when it is pending, and when it needs something from them. It adds screens nobody will ever screenshot, and it is probably the cheapest work in the project.
If your site takes money or documents, you want to know what a customer actually sees on the day it goes wrong.