If you need public URL but you want them to be secured, use Laravel signed URL
class AccountController extends Controller{ public function destroy(Request $request) { $confirmDeleteUrl = URL::signedRoute('confirm-destroy', [ $user => $request->user() ]); // Send link by email... } public function confirmDestroy(Request $request, User $user) { if (! $request->hasValidSignature()) { abort(403); } // User confirmed by clicking on the email $user->delete(); return redirect()->route('home'); }}
Tip given by @anwar_nairi