Exercise 3: Two Concrete "Modernize in Place" Payoffs — Possible Solution ==================================================================== PAYOFF ONE: LOGGING IN (STEP 2, CHAPTER 9) ------------------------------ Per this chapter, Auth::attempt() checks Sam's password against the legacy admin credential's existing bcrypt hash using Laravel's own default Hash driver, which is already bcrypt. This avoided having to add any password-hasher configuration at all - no equivalent of Django's own BCryptSHA256PasswordHasher addition to PASSWORD_HASHERS, and no hand-written comparison function like the Next.js rebuild's own bcryptjs.compare() call inside its Credentials provider. PAYOFF TWO: THE DEPLOYMENT ITSELF (STEP 1 AND STEP 10, CHAPTER 11) ------------------------------ Per this chapter, the site is served by the same Apache instance that has always run this domain, extended with one VirtualHost block and a PHP-FPM proxy directive. This avoided having to stand up an entirely new reverse-proxy layer from nothing - unlike the Next.js rebuild's own PM2 process manager plus a freshly configured nginx, and unlike the Django rebuild's own gunicorn plus a freshly configured nginx. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly names two distinct points in the capstone - authentication and deployment - where reusing the legacy site's existing infrastructure avoided a specific piece of work (hasher configuration in one case, a new reverse-proxy layer in the other) that both sibling rebuild courses genuinely had to do.