ensureEnabled(); return response()->json($this->service->statusFor((int) auth('customer')->id())); } public function start() { $this->ensureEnabled(); $this->service->markStarted((int) auth('customer')->id()); return response()->json($this->service->statusFor((int) auth('customer')->id())); } public function buy(Request $request) { $this->ensureEnabled(); $data = $request->validate([ 'plan' => 'required|integer|in:4,12', 'amount_toman' => 'required|integer|min:1000', ]); $result = $this->service->buy( (int) auth('customer')->id(), (int) $data['plan'], (int) $data['amount_toman'] ); return response()->json($result); } private function ensureEnabled(): void { if (! $this->service->enabled()) { abort(403, 'خرید اقساطی فعال نیست'); } } }