Use Laravel Form Requests for non-trivial validation and authorization while keeping controllers thin and testable.