From the principles of MVC architecture.
The responsibility of the view is to deal with presentation logic. In
context of web the goal for view is to produce a response to the user(link)
So all your logic of generating data should be residing inside the controller. Then the controller should pass that data to the appropriate view. The view should only be responsible for presenting the data to the user.
Edit
suppose you want to print a list of menu items from an array then you can do that from blade. But if you are calling a function to get the array and do some sorting/filtering on that array then doing some checks to make sure array is a valid one etc... then it just bloats the view. so these kind of logic can be put in controllers. I hope you got the point