Ну так бери строку и проверяй ее на число, грубо говоря:
Route::resource('/products', 'ProductController@showProduct')->name('showProduct');
//Где-то в ProductController
public function showProduct ($slug = '')
{
if (is_numeric($slug))
{
//по айди
$product = App\Product::find($slug);
return redirect()->route('showProduct', ['slug' => $product->slug]);;
}
else
{
//по слагу
$product = App\Product::findBySlug($slug); //ну допустим у нас есть этот метод и он ужасно засунут в саму модель, но да ладно
}
}