İlk sorunun cevabı
users_likes şeklinde bir ortanca tablo oluşturun. Bunun içerisinde user_id, article_id olsun. Kullanıcının ne zaman beğendiğini de tutmak isterseniz created_at gibi bir timestamp alanı da ekleyebilirsiniz. Kullanıcı bir konuyu beğendiğinde bu tabloya işletin.
Daha sonra kullanıcı kaç konu beğenmiş, hangi konuları beğenmiş, en çok beğenilen konular hangisi, en çok konu beğenen kullanıcı kim... gibi bilgilere ulaşabilirsiniz.
Bu tarz bir veriyi users ya da articles tablosunda tutmazdım.
İkinci sorunun cevabı
İlk sorunun cevabı gibi yaparsanız bu sorunun cevabı da otomatik oluşuyor. SELECT * FROM users_likes WHERE user_id = ? AND article_id = ? şeklinde bir sorgu kayıt dönderirse demek ki kullanıcı bu konuyu daha önce beğenmiş. created_at sütunu varsa da o tarihte beğenmiş.
Tekrar tıklayıp beğnemeyi geri alırsa bu kaydı sildireceksiniz.
Bu işlemi Eloquent ile yapmak isterseniz many-to-many kullanırsınız. İçerisindeki attach ve syncWithoutDetaching yöntemlerinden faydalanırsınız.
https://laravel.com/docs/5.8/eloquent-relationships#many-to-many