lastInsertId zwraca id na połączenie, co oznacza, że współbieżne połączenia sql nie będą ze sobą kolidować.
Jednak lastInsertId() prawdopodobnie nie jest najlepszym podejściem do tego, co robisz. Widzę, że już używasz modeli Eloquent. Podczas tworzenia nowego wpisu w tabeli te modele zwracają odpowiedni obiekt, a następnie możesz uzyskać id dokładnie tego obiektu bez żadnych pomyłek.
$article = Article::create(['title' => 'First post', 'content' => '...']);
echo $article->id;
To zawsze wygeneruje poprawny identyfikator artykułu i nie musisz się martwić o szczegóły implementacji. Nie widzę dobrego powodu, aby używać lastInsertId w nowoczesnym frameworku internetowym, może z wyjątkiem bardzo nielicznych przypadków brzegowych.
Zasadniczo staraj się unikać bezpośredniego zajmowania się bazą danych w swojej aplikacji i korzystaj z abstrakcji, które zapewnia framework - dzięki temu Twój kod będzie znacznie łatwiejszy w utrzymaniu i łatwiejszy do zrozumienia.
PS to może nie być dla ciebie ważne, ale lastInsertId() nie działa z transakcjami.