user()->hasRole(RoleEnum::PERUSAHAAN->value)) { return false; } return $ownerRecord->cooperationMedia() ->whereHas('partnerMedia.company', function ($query) { $query->where('user_id', auth()->id()); }) ->accepted() ->exists(); } public function table(Table $table): Table { return $table ->columns([ ...RowIndexColumn::make(), TextColumn::make('amount') ->label('Nominal') ->money('IDR', decimalPlaces: 0), TextColumn::make('payment_date') ->label('Tanggal Bayar') ->date('l, d F Y'), TextColumn::make('description') ->label('Keterangan') ->limit(50), ImageColumn::make('payment_proof') ->label('Bukti Pembayaran') ->getStateUsing(fn (CooperationPayment $record): ?string => optional($record->cooperationMedia->getMedia('cooperations')->where('custom_properties.doc_type', 'payment-proof')->sortByDesc('created_at')->first())->getPathRelativeToRoot()) ->disk(config('filesystems.default')), ]) ->emptyStateIcon(Heroicon::OutlinedCreditCard) ->emptyStateHeading(fn () => CheerfulNotification::getByKey('cooperation.payment_empty_heading')) ->emptyStateDescription(fn () => CheerfulNotification::getByKey('cooperation.payment_empty')) ->defaultSort('created_at', 'desc') ->modifyQueryUsing(function (Builder $query): void { $query->when(auth()->user()->hasRole(RoleEnum::PERUSAHAAN->value), function (Builder $subQuery): void { $subQuery->whereHas('partnerMedia.company', function (Builder $q): void { $q->where('user_id', auth()->id()); }); }); }); } }