episodeId = $episode->id; $this->likeCount = $episode->likes->count(); if (Auth::check()) { $this->liked = Like::has($episode, User::where('id', Auth::user()->id)->firstOrFail()); } } public function update() { $episode = Episode::where('id', $this->episodeId)->firstOrFail(); $this->likeCount = $episode->likes->count(); if (Auth::check()) { $this->liked = Like::has($episode, User::where('id', Auth::user()->id)->firstOrFail()); } } public function like() { if (! Auth::check()) { return; } $episode = Episode::where('id', $this->episodeId)->firstOrFail(); Like::toggle($episode, User::where('id', Auth::user()->id)->firstOrFail()); Cache::forget('episodeLikes'.$this->episodeId); if ($this->liked) { $this->liked = false; $this->likeCount--; return; } $this->liked = true; $this->likeCount++; } public function render() { return view('livewire.like-button'); } }