Good client relationships are worth more than a good contract. You want someone you can trust in a handshake deal. You want a good contract too. But the most important thing is a relationship where people see a problem as mutual. Where it's both the client didn't say and you didn't ask.
But more important is to discuss how changes will be handled before signing the contract. In particular something like "You will probably change your mind as we go along, that's normal, here's how we might proceed when that happens."
At some point, I recognized a pattern. Potential clients who have a problem with such a discussion up front are telling you that they will have a problem with that discussion when there's payment involved later.
Your options then are walk away from the client or price the work accordingly.
It's worth noting that you can build all of those changes into your price. Your job is to help the client make money on their new or existing business operations. It is not to save the client money on your services.