middleware(["auth", "role:client"]); } public function index(Request $request) { $clientId = auth()->user()->client->id; $query = Will::with(["package"])->where("client_id", $clientId)->whereIn("status", ["payment_pending", "payment_processing", "payment_failed"]); if ($request->get("payment_status")) { $query->where("payment_status", $request->get("payment_status")); } if ($request->get("start_date")) { $query->whereDate("created_at", ">=", $request->get("start_date")); } if ($request->get("end_date")) { $query->whereDate("created_at", "<=", $request->get("end_date")); } $pendingWills = $query->orderBy("created_at", "desc")->get(); return view("client.pending-payments.index", compact("pendingWills")); } public function show($id) { $will = Will::with(["package", "beneficiaries", "guardians"])->where("id", $id)->where("client_id", auth()->user()->client->id)->firstOrFail(); return view("client.pending-payments.show", compact("will")); } public function makePayment($id) { $will = Will::where("id", $id)->where("client_id", auth()->user()->client->id)->firstOrFail(); if ($will->payment_status !== "payment_pending") { return back()->with("error", "This will is not pending payment."); } return redirect()->route("client.will.payment", $will->id)->with("success", "Proceed to complete payment for your will."); } public function retryPayment($id) { $will = Will::where("id", $id)->where("client_id", auth()->user()->client->id)->firstOrFail(); $will->update(["payment_status" => "payment_pending", "payment_failure_reason" => null, "payment_attempts" => ($will->payment_attempts ?? 0) + 1]); return redirect()->route("client.will.payment", $will->id)->with("success", "Payment status reset. Please try again."); } }