Override some intermediary function

Is there any function that ALL bot actions (utters, actions, etc.) go through/use that can be overridden or altered (that also has access to relevant objects like tracker, dispatcher, etc.) before the next action has been executed? If not, can you give me an advice in how to implement that? Preferably without altering any Rasa Core code, but that’s alright if not possible.

Wondering because I have a fairly complicated domain and stories that build up my bot. Since the stories is the backbone of the bot and really determines how well it is functioning it’s hard to get it right with every training. I would like a function to “check” if the upcoming predicted action from the bot after a user has sent his/her message is the correct one or if it needs to be changed.

Same problem