Instead of putting all this on the model, I would create another service class here, and move these profanity behaviors there. To me an AR model is about databases and validations.