As coolsam said, this is an old thread. But I stumbled upon this and felt the original question wasn't properly answered. So for future readers wondering about naming URI resources with multiple words here's a fuller answer:
By default, modern versions of Laravel (6+) use snake case for the route parameter names. You may implicitly bind a multi-word model with the type-hint and parameter name using either snake_case or camelCase. By Laravel (and PHP) convention, a camelCase name would be preferred.
So, for example, a MultiWord model and corresponding resourceful controller of MultiWordController would register a resource route as:
Route::resource('multi-word', MultiWordController::class);
By default, this would produce the following URIs:
multi-word.index | multi-word
multi-word.create | multi-word/create
multi-word.store | multi-word
multi-word.show | multi-word/{multi_word}
multi-word.edit | multi-word/{multi_word}/edit
multi-word.update | multi-word/{multi_word}
multi-word.destroy | multi-word/{multi_word}
The action, for edit, using implicit model binding may be:
public function edit(MultiWord $multiWord) {}
Or, if you prefer:
public function edit(MultiWord $multi_word) {}
This is how Laravel handles naming for multi-word resources. Any other naming would require Naming Resource Parameters, as coolsam noted.