Exercise 1: Route Model Binding — Possible Solution ==================================================================== WHAT ROUTE MODEL BINDING DOES ------------------------------ Per this chapter, the route Route::post('/admin/pages/{page}/title', [PageController::class, 'updateTitle']) uses a wildcard segment, {page}, that shares its name with a type-hinted parameter on the target Controller method: updateTitle(UpdatePageTitleRequest $request, Page $page). Because the parameter is type-hinted as a Page model and its name matches the route wildcard, Laravel automatically treats the URL segment as a lookup key, fetches the matching row, and hands the Controller method an already-loaded Page instance before the method body runs at all. WHY THE CONTROLLER METHOD NEVER CALLS Page::findOrFail() ITSELF ------------------------------ Per this chapter, that lookup - which in a framework without model binding would normally require an explicit query, such as Page::findOrFail($id), written as the first line of the method - happens automatically, outside the method body, purely from the route definition plus the parameter's type hint. By the time updateTitle() executes, $page is already a real, fetched Page object, so there is no manual lookup left to write. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly explains that route model binding is triggered by matching the route wildcard's name to a type-hinted Controller parameter, and correctly explains that the automatic lookup happening before the method runs is exactly why no manual Page::findOrFail() call is needed inside it.