Can anyone explain the difference between 'will have to' and 'gonna have to', please? I'm not native speaker and these statements seem exactly the same to me.
You are going to have to renew your passport. (future intention - sounds horrible without "gonna") means you'll have to do it in the near future. ("gonna" is a colloquialism for "going to")
You have to renew your passport. (present simple) It refers to the present.
You will have to renew your passport. (future simple) You'll have to do it at some unspecified time in the future.