/**
  * Handle the filter.
  *
  * @param Builder         $query
  * @param FilterInterface $filter
  */
 public function handle(Builder $query, FilterInterface $filter)
 {
     $stream = $filter->getStream();
     if ($stream && ($fieldType = $stream->getFieldType($filter->getField()))) {
         $fieldTypeQuery = $fieldType->getQuery();
         $this->container->call([$fieldTypeQuery, 'filter'], compact('query', 'filter', 'builder'));
         return;
     }
     if ($stream && ($fieldType = $stream->getFieldType($filter->getSlug()))) {
         $fieldTypeQuery = $fieldType->getQuery();
         $this->container->call([$fieldTypeQuery, 'filter'], compact('query', 'filter', 'builder'));
         return;
     }
     if ($filter->isExact()) {
         $query->where($filter->getSlug(), $filter->getValue());
     } else {
         $query->where($filter->getSlug(), 'LIKE', "%{$filter->getValue()}%");
     }
 }