group(function () { Route::get('property/report/{report}', 'PropertyReportController'); Route::patch('property/actions/{action}', 'PropertyActionsController'); Route::patch('property/action/{property}/{action}', 'PropertyActionController'); Route::patch('property/workflow/{property}/{transition}', 'PropertyWorkflowController'); Route::resource('property', 'PropertyResourceController'); }); // Guard routes for portal Route::prefix('{guard}/product')->group(function () { Route::patch('portal/actions/{action}', 'PortalActionsController'); Route::patch('portal/action/{portal}/{action}', 'PortalActionController'); Route::resource('portal', 'PortalResourceController'); }); // Guard routes for developer Route::prefix('{guard}/product')->group(function () { Route::patch('developer/actions/{action}', 'DeveloperActionsController'); Route::patch('developer/action/{developer}/{action}', 'DeveloperActionController'); Route::resource('developer', 'DeveloperResourceController'); }); // Guard routes for description Route::prefix('{guard}/product')->group(function () { Route::get('description/report/{report}', 'DescriptionReportController'); Route::patch('description/actions/{action}', 'DescriptionActionsController'); Route::patch('description/action/{description}/{action}', 'DescriptionActionController'); Route::patch('description/workflow/{description}/{transition}', 'DescriptionWorkflowController'); Route::resource('description', 'DescriptionResourceController'); }); // Public routes for product Route::get('products/', 'ProductPublicController@index'); Route::get('product/{slug?}', 'ProductPublicController@show');