Laravel жалуется на запрос с дублированными именованными параметрами

Когда я делаю (в Laravel):

<?php
\DB::select('SELECT * FROM my_table WHERE id = :id || id = :id', [
    'id' => 1,
]);

Это говорит:

SQLSTATE [HY093]: Неверный номер параметра (SQL: SELECT * FROM my_table WHERE id =: id || id =: id)

Но когда я делаю (в чистом php):

<?php
$dbh = new PDO('mysql:dbname=...', '...', '...');
$stmt = $dbh->prepare('SELECT * FROM my_table WHERE id = :id || id = :id');
$r = $stmt->execute([
    'id' => 1,
]);
while ($row = $stmt->fetch()) {
    var_dump($row['id']);
}

Это успешно. Что я делаю неправильно?

Постскриптум Видимо, запрос, который я выполнил, когда столкнулся с проблемой, был более осмысленным.

UPD Более или менее реальный запрос:

SELECT id
FROM objects
WHERE ACOS(
    SIN(RADIANS(lat)) * SIN(RADIANS(:lat))
    + COS(RADIANS(lat)) * COS(RADIANS(:lat)) * COS(RADIANS(:lng - lng))
) * 6371 < 10

Ответы на вопрос(1)

Ваш ответ на вопрос