I've been thinking a lot about where validation should live in a Laravel application.
For a long time, I put almost everything into Form Requests because it felt clean. Recently, I've been exploring a more domain-focused architecture (Actions, Value Objects, ADR), and now I'm asking myself:
Should the domain ever throw a ValidationException?
On one hand, it makes sense because the domain protects its invariants. On the other hand, ValidationException feels like an HTTP concern.
At the moment I'm leaning towards keeping Laravel's validation inside the HTTP layer and letting the domain throw domain-specific exceptions instead.
I'm curious: how do you approach this in your projects?