That's fantastic! you did well. The next step would be not only to have Jack stop when he is encroaching on your space. But to actually MOVE him. You stopped him but werent' overl nasty about it . You would only be nasty and BIG if he did not respect your "stop!" verbal and body language command. So, after you have him stopped and if he's nice you pet him. Then back away from him and then reappraoch with the mind set of moving him off a few steps. You start with the same body language as STOP, but you may have to be a bit stronger (start soft, remember and get stronger), and you can swish the whip (soft to strong, and only as stong as necessary) and make him move away from you. Don't worry if he throws up his head or acts upset. Just move him a step or two and then turn away and go pay attention to something else.
Pretend that you have found some food (you are now a pretend horse) and you bend down and pretend eat it. If Jack comes up and wants to horn in, LET HIM HAVE IT. I mean turn and drive him off the way a lead horse posesses it's food. Pin your imaginary ears and lower your head and think "shoo!". But as soon as he scoots off, return to your food (imaginary) and do this until Jack stand respectfully to one side. You can do this with real hay if you feel ok.
Along with this, sometimes go up to Jack and just pet him, but if he is grumpy and in any way threatening ,, drive him off.
Goats make ok companions but they don't think like horses, (not as smart) and it can be hard to keep them from slipping through fences and such.