Your controller should call one method in your Business Layer passing it the parameters needed to effect a comment save.
The business layer method is the "orchestration" method. It knows what to do and it know what all needs to be done. This method in turn may call other private/public methods or specialized object's method to get the job done.
The key point is that the business rules of what needs to happen when a comment is saved is encapsulated in one method of the business layer. Other controllers can call this method without needing to know everything that needs to be done. Similarly, if you need to add additional steps in the process, you need only change the implementation in the business layer.
public class BusinessLayer
public int SaveComment(Comment comment)
By the way, these notifications and full text indexing etc. should be done "out of band". Meaning you should an external process to actually do all the work. For example, you could post a "message" in an MSMQ message queue. It takes an instant to post a message and the user who posted the comment is not waiting for all of the processing to be completed.
You can then have another process (or processes) that process the messages in MSMQ. These processes can take their own sweet time to get the job done and these processes can use the same Business Layer (if needed - or the "managers") to get the work done.
The design will allow your application to scale and those posting comments will see minimal response times.