You can do this without physics. You copy the bounds of the game objects to rectangles and then use the Phaser.Geom.Intersects methods. Recycling the rectangles is efficient.
Most game objects have two boundaries, possibly distinct: Phaser.GameObjects.Components.GetBounds#getBounds() and Phaser.Display.Bounds.GetBounds(). If you’re not interested in transforms then
GetBounds() is faster.