سلام
برای یسری محاسبات خاص accessor تعریف کردم و این رو جاهای خاص نمایش می دم حالا تو یه کوئری می خوام مخفی کنم وقتی مخفی می کنم paginate رو حذف می کنه
$data = Invoice::where($where)
->orderBy('id', 'DESC')
->paginate($request->size)->makeHidden(['field1', 'field2', 'field3']);
روشی هست که هم accessor مخفی بشه هم paginate سر جاش بمونه
۲ راه کلی به نظرم میرسه
۱. استفاده کردن از کلاس های Resource که کارشون Transformation داده هاست
۲. استفاده از متد select و سلکت کردن فیلد ها به صورت دستی
گزینه اول و makeHidden یک مشکل مشترک دارند.. اون هم اینکه ابتدا داده ها رو کامل میگیرند و سپس بر حسب نیاز اون ها رو فیلتر میکنند.. یعنی کوئری که اجرا میشه همه موارد رو میگیره و بعد فیلتر انجام میشه که در مقیاس بالا روی پرفرمنس اثر میگذاره
شاید پاسخ شما همینجا باشد