Different fields for different user types

Is it how you solved it?

I’ve been thinking of using dynamic zones.

Or similarly to what you said - I’d keep User as a collection type. Then add two collections: coaches and members. And within User create a relation to one of the other collection entries.