Laravel Select - Table Search

Folosesc DataTables unde am un tabel cu toate datele din DB. Problema este la search, acel tabel cand imi cauta, el imi cauta in toate datele din tabel (asta e bine), problema este ca la groupBy daca sunt 2 row-uri au acelasi user_id in cazul meu (user_id nu e unic), si caut ceva, el o sa-mi returneze datele de la ultimul select pe acel user_id.
Spre exemplu: #1: user id = 1 / tag: insomnia - #2: user id = 1 / tag: racing.

Daca eu caut in acel tabel: “insomnia”, nu o sa-mi gaseasca. Doar daca scriu “racing”, pentru ca acela a fost grupa ultimul. Problema este doar pentru user_id la fel. Cum as putea rezolva…?

$latestPosts = DB::table('posts')
   ->select('user_id', DB::raw('MAX(created_at) as last_post_created_at'))
   ->where('is_published', true)
   ->groupBy('user_id');

$users_table_show = DB::table('users')
    ->joinSub($latestPosts, 'latest_posts', function ($join) {
        $join->on('users.id', '=', 'latest_posts.user_id');
    })->get();

Daca scot “groupBy”, in tabel o sa am dubluri, si nu vreau asta. E un buton unde ma duce catre toate datele, dar in tabel nu trebuie sa fie dubluri cu acelasi user_id.

poate nu grupezi dupa coloana potrivita?

edit:
poate e tarziu, dar imi e greu sa raspund concret fara detalii concrete.

Gruparea e ok, nu asta e problema. Ideea este ca search-ul imi cauta in toate datele din tabel. Si la groupBy, o parte din date dispar. Si la search, nu mi le mai afiseaza. Pentru ca search-ul nu face un query in baza de date, asa e construit, sa caute doar in tabel.

Ma gandeam cum sa atasez si dublurile acolo unde este cazul incat search-ul sa le ia in considerare si sa le afiseze cand le caut.

Zi in cuvinte ce vrei sa obtii mai exact.

Salut.

Da, tu cand dai groupBy(‘user_id’), tu mai dai si MAX(create_at) ceea ce inseamna ca iti selecteaza ultimul rand pentru acel user_id care are created_at cel mai nou ( adica ultimul ) care contine tag: racing.

Tu ai nevoie sa iti returneze 2 randuri cu user id: 1
1 cu tag: insomnia si 1 cu tag: racing, sa ai practic un tabel de genul:

user_id | tag
1 | insomnia
1 | racing

Incearca sa grupezi dupa user_id si tag: groupBy([‘user_id’, ‘tag’]) sau tag-ul este in latest_posts ?