¿Se puede usar el generador de consultas para crear una consulta con una cláusula WHERE dinámica en tiempo de ejecución en laravel?

Entonces sé que si construyo una cadena SQL dinámica puedo hacer algo como lo siguiente

$SQL = "SELECT * FROM " . $table;

$first = 1;
foreach($items as $key => $val)
{
   if($first) $SQL .= " WHERE ";
       else $SQL .= " AND ";
   $SQL .= $key . " LIKE " . $VAL;
   $first = 0;
}

y luego llamarDB::Query($SQL);

Pero esto no protege automáticamente la entrada del usuario.

Si utilizara el generador de consultas en laravel, la entrada del usuario se limpiaría automáticamente, pero no sé cómo puedo usar el generador de consultas para crear una consulta con un número dinámico de cláusulas where en tiempo de ejecución. es posible?

Respuestas a la pregunta(2)

Su respuesta a la pregunta