discover($options); $routes = $registry->getByAttribute(Route::class); echo "=== DISCOVERED ROUTES ===\n\n"; echo "Total routes found: " . count($routes) . "\n\n"; foreach ($routes as $discovered) { $routeAttr = $discovered->attribute->newInstance(); $className = $discovered->className; $methodName = $discovered->methodName ?? '__invoke'; echo "Route: {$routeAttr->method->value} {$routeAttr->path}\n"; echo " Class: {$className}\n"; echo " Method: {$methodName}\n"; // Check for Campaign routes specifically if (str_contains($className, 'Campaign')) { echo " ⭐ CAMPAIGN ROUTE\n"; } echo "\n"; } // Specifically search for PreSaveCampaign echo "\n=== SEARCHING FOR PreSaveCampaign ===\n"; $found = false; foreach ($routes as $discovered) { if (str_contains($discovered->className, 'PreSaveCampaign')) { echo "✅ PreSaveCampaign FOUND!\n"; echo " Path: {$discovered->attribute->newInstance()->path}\n"; $found = true; } } if (!$found) { echo "❌ PreSaveCampaign NOT FOUND in discovery!\n"; } } catch (\Exception $e) { echo "❌ Error during discovery: " . $e->getMessage() . "\n"; echo "File: " . $e->getFile() . ":" . $e->getLine() . "\n"; echo "\nStack trace:\n"; echo $e->getTraceAsString() . "\n"; }