Typically I try to stick with a single resource per URL group. If I have to, I might add a sub-resource, but only if those sub-resources are minimal. I definitely do not have more than one sub resource. Usually, sub-resources could just be designed as top level resources. For example, this is "ok": Route::resource( 'posts' , 'PostsController' ); Route::resource( 'posts.comments' , 'PostsCommentsController' ); but, in my opinion, this would be "better": Route::resource( 'posts' , 'PostsController' ); Route::resource( 'comments' , 'CommentsController' ); Your milage may vary though, it also depends on what your app does, or what you might want to do with it in the future. In the top example, you are somewhat assuming that comments only belong on posts. If that's the case, you're probably fine. In the second example, comments are on the top level and can be potentially attached to anything. Not only Posts, but also maybe Pages, User Profiles, anything really.