lastInsertId devuelve la identificación por conexión, lo que significa que las conexiones sql simultáneas no interferirán entre sí.
Sin embargo, lastInsertId() probablemente no sea el mejor enfoque para lo que sea que esté haciendo. Veo que ya estás usando modelos Eloquent. Al crear una nueva entrada en la tabla, esos modelos devuelven el objeto correspondiente y luego puede obtener la identificación de ese objeto exactamente sin ninguna confusión.
$article = Article::create(['title' => 'First post', 'content' => '...']);
echo $article->id;
Esto siempre generará la identificación del artículo correcta y no tiene que preocuparse por los detalles de implementación. No veo una buena razón para usar lastInsertId en un marco web moderno, excepto quizás en muy pocos casos extremos.
Como regla general, trate de evitar tratar directamente con la base de datos en su aplicación y use las abstracciones que proporciona el marco; hará que su código sea mucho más fácil de mantener y más fácil de entender.
PD eso podría no ser importante para usted, pero lastInsertId() no funciona con transacciones.