'id', 'sort' => 'DESC']) { return Subscription::when(array_keys($filter, true), function ($query) use ($filter) { if (!empty($filter['email'])) { $query->where('email', $filter['email']); } }) ->orderBy($sort['by'], $sort['sort']) ->paginate($perPage ?: env('PAGE_LIMIT', 999)); } public function storeSubscription($validated) { $result = false; DB::beginTransaction(); try { $validated['uuid'] = Str::uuid(); $result = Subscription::create($validated); if ($result) { DB::commit(); } } catch (\Throwable $th) { report($th); DB::rollback(); } return $result; } public function findSubscriptionEmailByUuid($uuid) { return Subscription::where('uuid', $uuid)->first(); } public function deleteSubscriptionEmail($uuid) { DB::beginTransaction(); try { $subscription = $this->findSubscriptionEmailByUuid($uuid); if (!$subscription) { return null; } $subscription->delete(); DB::commit(); return true; } catch (\Throwable $th) { DB::rollback(); report($th); return null; } } }