original_string: protected function completeWithRandomProducts(Collection $products) : Collection
  	{
  		$currentLimit = $this->limit - $products->count();
  
  		return Product::whereNotIn('id', $this->excluding->all())
  			->orderBy('rate_val', 'desc')
  			->take($currentLimit)
  			->get();
  	}
code: protected function completeWithRandomProducts(Collection $products) : Collection
  	{
  		$currentLimit = $this->limit - $products->count();
  
  		return Product::whereNotIn('id', $this->excluding->all())
  			->orderBy('rate_val', 'desc')
  			->take($currentLimit)
  			->get();
  	}
code_tokens: protected function completeWithRandomProducts ( Collection $ products ) : Collection { $ currentLimit = $ this -> limit - $ products -> count ( ) ; return Product :: whereNotIn ( 'id' , $ this -> excluding -> all ( ) ) -> orderBy ( 'rate_val' , 'desc' ) -> take ( $ currentLimit ) -> get ( ) ; }
docstring: Completes the returned suggestion with random products.
  
  @param  Collection $products
  
  @return Collection
docstring_tokens: Completes the returned suggestion with random products .