What are you tryng to do with ? $product->images()->save($product);
$product->images() represents a collection of Imagens, so you need to pass Image Class, not Product.
something like this:
( Im my case I have one plublication with many Media. )
//You can create your product if is the case
$publication = publication::find($publication_id);
//Save file in the disk
//Create imagem ( media in my case)
$media = new Media([
'file' => $file->getClientOriginalName(),
'full_path' => $path.$fileName,
'thumbnail' => MediaRepository::getThumbnailPath( $mediaTypeId , $extension , $path , $fileName ) ,
'media_type_id' => $mediaTypeId
]);
// Add media to Publication
$publication->media()->save($media);