Your SO post seems to state the question slightly differently:
When the user clicks on "Mark as Read" the page redirects back and the number is decremented by 1, as expected. However, when the user clicks on "View Request", the page redirects to the relevant page but the number doesn't decrement.
Whereas this post says:
when I click on "Mark as Read" for a notification, it doesn't seem to refresh the count properly.
But, I believe the issue is the page refresh. return redirect() refreshes the page where as return view is just responding to a URI and will not refresh the page contents. That may be why you see the update when they simply click mark as read because the response in the controller is a redirect.
That being said, the I don't think it would be improper to add a redirect to redirect he user to the correct view if they click View Request. Since you are building the URI based on their request data and not responding directly to a click on a link.