lastInsertId vrací ID pro každé připojení, což znamená, že souběžná připojení SQL se nebudou navzájem rušit.
LastInsertId() však pravděpodobně není nejlepší přístup k čemukoli, co děláte. Vidím, že už používáte modely Eloquent. Při vytváření nové položky v tabulce tyto modely vracejí odpovídající objekt a pak můžete získat ID přesně tohoto objektu bez jakéhokoli zmatku.
$article = Article::create(['title' => 'First post', 'content' => '...']);
echo $article->id;
Tím se vždy vypíše správné ID článku a vy se nemusíte starat o podrobnosti implementace. Nevidím dobrý důvod pro použití lastInsertId v moderním webovém frameworku, možná s výjimkou několika okrajových případů.
Obecným pravidlem je, že se snažte vyhnout přímému jednání s databází ve vaší aplikaci a používejte abstrakce, které rámec poskytuje – váš kód bude mnohem lépe udržovatelný a snáze srozumitelný.
P.S. to pro vás nemusí být důležité, ale lastInsertId() s transakcemi nefunguje.