Hi, some comments:
1) To not use any calls to the asset loading functions (like .newImage()) inside a high-frequency function, or you're gonna wear out your disk. The love.draw() function is always called at least 30 times per second (usually 60 or more), and each time it's called, you're loading that image from disk. Better to cache the image once during startup into some outer scope variable, then use that variable later as explained by pgimeno in here:
viewtopic.php?p=261188#p261188
2) You need to do some math on the X, Y coordinates that you're sending to the draw() call so that the quad is positioned how you want to. The quad begins being drawn by its top-left corner, so if you want to draw it
centered at the mouse cursor, you should subtract half the quad width from its desired x position, and half the quad height from its desired y position. Use the quad width and height in pixels, and already scaled by the same SX and SY scaling factors that you'll send to draw().
3) The optional OX,OY parameters control the
origin offset of the scale and rotate and shearing transformations done by the optional R and SX,SY and KX,KY parameters.
The default origin is the top-left corner of the sprite, so the sprite gets scaled by that corner for example, but by using the origin offset you can scale it from its center or some other position.
This is written in the introduction to that love.graphics.draw() docs page that marclurr pointed to (it does help to have some previous experience with using sprites and 2D affine transformations, but it's too much stuff to explain in forum posts)