canOrAbort('approve price request'); $priceRequest->update([ 'status' => PriceRequestStatus::APPROVED->value, 'finalized_at' => now(), ]); StorePushNotification::dispatch( PushNotification::where('user_id', $priceRequest->user_id)->get(), [ 'title' => 'Permintaan Harga Disetujui ✅', 'body' => "Selamat! Permintaan untuk melihat harga beli {$priceRequest->module} sudah disetujui 🎉", ], ); $this->dispatch('refreshDatatable'); $this->toast('Permintaan harga berhasil disetujui.'); Flux::modals()->close(); } public function reject(PriceRequestModel $priceRequest): void { $this->canOrAbort('reject price request'); $priceRequest->update([ 'status' => PriceRequestStatus::REJECTED->value, 'finalized_at' => now(), ]); StorePushNotification::dispatch( PushNotification::where('user_id', $priceRequest->user_id)->get(), [ 'title' => 'Permintaan Harga Ditolak ❌', 'body' => "Maaf, permintaan untuk melihat harga beli {$priceRequest->module} tidak dapat dipenuhi 🙏", ], ); $this->dispatch('refreshDatatable'); $this->toast('Permintaan harga berhasil ditolak.'); Flux::modals()->close(); } public function render(): View { return view('livewire.studio.information.price-requests', [ 'pageTitle' => 'Permintaan Harga', ]); } }