I do work in real-life code bases. My job is working on a huge repo with many problems. Your logic doesn’t flow, and you haven’t given an example.
Extracting business logic into a new class doesn’t affect the original code; you’re just moving logic from one place to another. The only reason you wouldn’t be able to do this is if there’s a process issue, i.e. you manager won’t let you make a new class or something of that nature. This is generally not a problem, and if it is, you’ve got bigger problems.
Granted, there may come a time when you have a really, really big controller function whose logic you need to move. That doesn’t mean you can’t do it, it’s just challenging, but we shouldn’t be encouraging people to take shortcuts when it’s non-breaking to do it the right way and doing it the wrong way just makes things worse.