$likeCompany =LikeDislikeCompany::where('company_id','=',$companyId2)
->where('user_id','=',Auth::user()->id)
->get();
Burada ->get() ile kaydı aldığınızda tek bir kayıt olsa bile LikeDislikeCompany objesi yerine tek elemanlı bir Collection dönderir. O yüzden tek ve direk LikeDislikeCompany istediğimiz için ->get() yerine ->first() kullanmalısınız. Yani
$likeCompany =LikeDislikeCompany::where('company_id','=',$companyId2)
->where('user_id','=',Auth::user()->id)
->first();
$likeCompany->vote = 0;
$likeCompany->save();
Ayrıca aslında beğenme ve beğenmeme diye iki yönteme de gerek yok gibi, burada bana sorarsanız tek bir yöntem içerisinde updateOrCreate kullanabilirsiniz.
https://laravel.com/docs/5.6/eloquent (Bu sayfada updateOrCreate şeklinde aratın, Other Creation Methods başlığı altında ögrebilirsiniz. Kafanız karışırsa bu konudan tekrar yardım isteyin)
Ayrıca
where('user_id','=',Auth::user()->id) ile mevcut giriş yapmış kullanıcının beğenilerine ulaşmaya çalışıyorsunuz. User ile LikeDislikeCompany arasında one-to-many ilişki kurarsanız (ya da kurduysanız) şöyle daha iyi olur:
public function likeOrDislike(Request $request, $companyId, $vote)
{
$company = $request->user()->votedCompanies()->updateOrCreate(
['id' => $companyId],
['vote' => $vote]
);
$message = $company->vote ? 'Başarıyla beğenildi' : 'Şirket Beğenilmekten Vazgeçildi';
return response()->json(['message' =>$message]);
}
Kafadan yazdığım için hata yapmış olabilirim, buradan yola çıkarsınız.
Edit: firstOrCreate yazmıştım, düzelttim, updateOrCreate olacaktı.