For a start, passing an integer to find() will only ever return one model instance. In your example $menus is either going to be an instance of a model with the id of 6 or it will be null.
Based on this we can further conclude you're not ordering anything. If you with to return the post_cats ordered by show_order then you can try the following...
$categories = Menu::find(6)->post_cats()->orderBy('show_order')->get();
There are, however better ways to do this... you could put the ->orderBy() on the relationship..
I would recommend naming things better too for future reference... postCategories reads better than post_cats, for example...