the objects are never going to be the same, thus it wont work with toBe() to compare the carbons.
but i think you can achieve a very similar to what you want by a slightly tweaked syntax:
expect($product)
->brand->toBe('samsung') //just a dummy in this case, of course, just to show the higher order expectation
->release_date->toDateString()->toBe($releaseDate->toDateString())
->category->toBe('phone'); //another dummy